2016-03-03 167 views
6

在构建码头图像时,如果图像使用docker-compose build vs docker build构建,则图像ID不同。 env具有不同的主机名。由docker-compose构建与docker构建生成的docker镜像有什么不同?

还有什么不同?为什么图像不同?

+1

我相信除了容器名称以外,没有其他区别,'docker-compose'会自动生成,但是您可以指定何时使用'docker-build'。 –

+1

这仍然是一个公开的问题:https://github.com/docker/compose/issues/883 –

回答

2

就图像内容而言,在docker-compose build与“手动”docker build之间构建的实际图像之间没有区别。

区别仅在于构建结果的命名/标记,其中docker-compose会自动为您执行。 除此之外,docker-compose的构建在幕后并没有什么不同,只是一般的docker build的包装。

+0

但我确实看到了生成图像之间的差异。作为我的dockerfile的一部分,我做了一个“npm install”来下载所有的依赖关系。 使用“docker build”构建的图像全部下载了“npm_modules”,而使用“docker-compose up”生成的图像具有空的“npm_modules”文件夹。 – SudheerKovalam

+0

工作方式肯定有不同。在我的项目中,docker build可以工作,但是docker-compose build会给出一些错误。关键是如果一个人工作,另一个人不需要工作。 – GiriB

+0

@GiriB将很高兴知道错误:)在这种情况下,很有可能你的'docker-compose.yml'有什么问题。 –

1

除命名区别外,如果构建的参数不同,则可能会在结果图像中产生差异:docker-compose.yml的build:部分和docker build命令的命令行参数。 例如,--build-args可以不同。

相关问题