【问题标题】:What is the difference b/w a docker image generated by docker-compose build vs docker build?由 docker-compose build 与 docker build 生成的 docker 镜像黑白有什么区别?
【发布时间】:2016-03-03 18:29:33
【问题描述】:

在构建 docker 镜像时,如果镜像是使用 docker-compose builddocker build 构建的,则镜像 ID 是不同的。环境有不同的主机名。

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

【问题讨论】:

  • 我相信除了容器名没有其他区别,docker-compose会自动生成,但是你可以在使用docker-build的时候指定。
  • 这仍然是一个悬而未决的问题:github.com/docker/compose/issues/883

标签: docker docker-compose dockerfile


【解决方案1】:

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

区别仅在于构建结果的命名/标记,docker-compose 会自动为您完成。 除此之外,docker-compose 构建在幕后没有什么不同,只是普通docker build 的包装。

【讨论】:

  • 但我确实看到了生成图像之间的差异。作为我的 dockerfile 的一部分,我执行“npm install”来下载所有依赖项。使用“docker build”构建的镜像都下载了“npm_modules”,而使用“docker-compose up”生成的镜像有一个空的“npm_modules”文件夹。
  • 它们的工作方式一定有所不同。在我的项目中docker build . 有效,但docker-compose build 给出了一些错误。关键是如果一个工作,另一个不需要工作。
  • @GiriB 很高兴知道这个错误 :) 在这种情况下,你 docker-compose.yml 很可能有问题。
  • 你没有回答为什么图片不同。
  • @ArminBraun 我现在记得,我使用的 docker-composedocker-compose.yml 文件不兼容。对困惑感到抱歉!更新docker-compose 成功。
【解决方案2】:

除了命名不同之外,如果构建的参数不同,生成的图像可能也会有所不同:docker-compose.yml 的 build: 部分和 docker build 命令的命令行参数。 例如 --build-args 可以不同。

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    相关资源
    最近更新 更多