【问题标题】:docker-compose up vs docker-compose up --build vs docker-compose build --no-cachedocker-compose up vs docker-compose up --build vs docker-compose build --no-cache
【发布时间】:2018-07-12 19:48:19
【问题描述】:

我不知道它们之间有什么区别。

  • docker-compose up

  • docker-compose up --build

  • docker-compose build --no-cache

up没有缓存有什么命令吗?

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    以下只构建镜像,不启动容器:

    • docker-compose build

    如果图像不存在,则以下构建图像并启动容器:

    • docker-compose up

    如果添加--build 选项,即使在不需要时也会强制构建图像:

    • docker-compose up --build

    以下跳过镜像构建过程:

    • docker-compose up --no-build

    如果没有预先构建图像,则会失败。

    --no-cache 选项在镜像创建过程中禁用 Docker build cache。这用于缓存 Dockerfile 中的每一层,并加速使用先前为其他相同图像构建的 layers(~ Dockerfile 行)的图像创建。

    【讨论】:

    • docker-compose up -d 是什么意思?
    • 这会以分离模式启动容器,因此不会在控制台中显示它们的任何输出并在后台运行它们。
    • 请注意,docker-compose up -d 的某些选项(例如 -d)不在仅适用于 docker-compose 的文档中。你一定要看docs.docker.com/compose/reference/up
    • @thanks_in_advance --build 强制(重新)构建图像。如果省略标志并且图像已经存在,则不会重建。
    • 所以如果我第一次在我的机器上运行 docker-compose up,它会构建镜像,然后运行它?