首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker-compose up --build与docker-compose build && docker-compose up有区别吗?

docker-compose up --build与docker-compose build && docker-compose up有区别吗?
EN

Stack Overflow用户
提问于 2021-03-24 21:25:21
回答 1查看 108关注 0票数 5

我们试图在远程主机上构建和运行docker-compose项目。我尝试使用:

代码语言:javascript
复制
docker-compose -H 'ssh://remote_address' up --build

并得到了

代码语言:javascript
复制
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

所以我们尝试了:

代码语言:javascript
复制
docker-compose -H 'ssh://remote_address' build
docker-compose -H 'ssh://remote_address' up

它工作得很好。我的问题是,我在文档中找不到证据证明这是正确的行为。这是docker-compose中的一个bug,还是我的环境中的一个bug?

EN

回答 1

Stack Overflow用户

发布于 2021-03-25 05:45:10

我不确定你得到的第一个命令的错误,我的意思是docker-compose -H 'ssh://ip' up --build,因为它可能真的是一个但是,但提到的三个命令肯定是不同的。我会试着用我简单的方式来解释:

  1. 的第一个命令是docker-compose up --build.

此命令查找docker-compose文件并重新构建映像,然后使其运行。假设您对docker-compose文件进行了一些更改,因此当您只运行docker-compose时,您将得到一个警告,指出镜像未重新构建,您应该运行docker-compose up --build来重新构建它,并重新构建所有内容(尽管之前已经做了一些工作并在缓存中显示)。

  1. 的第二个命令是docker-compose build.

这个命令只在docker-compose的基础上构建你的镜像,而不是 it。您可以查看由docker image lsdocker images构建的映像。另外,执行docker ps -a应该看不到您最近构建的映像正在运行。

第三个也是最后一个命令是docker-compose up.

如果第一次输入此命令,它会尝试运行Dockerfile中的所有内容(如果存在),并下载基础镜像等。然后生成镜像并运行容器。

如果以前构建过镜像,它就会直接运行它。

与第一个命令不同,第三个命令只运行该映像的最新构建,但不会再次构建它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66782028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档