docker-compose up vs docker-compose up --build vs docker-compose build --no-cache

Tos*_*shi 91 docker docker-compose

我无法弄清楚那些之间的区别.

  • docker-compose up

  • docker-compose up --build

  • docker-compose build --no-cache

up没有缓存有没有命令?

zua*_*azo 165

以下仅构建映像,不启动容器:

  • docker-compose build

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

  • docker-compose up

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

  • docker-compose up --build

以下内容跳过了图像构建过程:

  • docker-compose up --no-build

如果图像未预先构建,则会失败.

--no-cache选项在映像创建过程中禁用Docker 构建缓存.这用于缓存Dockerfile中的每个图层,并加快图像创建速度,重用以前为其他相同图像构建的图层(~Dockerfile行).

  • 这会以分离模式启动容器,因此不会在控制台中显示它们的任何输出并在后台运行它们. (12认同)
  • 实际上`docker-compose up`只会重建图像,如果它不存在的话.换句话说,为确保您的最新源代码和图像更改正在运行,请确保您运行`docker-compose build`. (8认同)
  • @thanks_in_advance `--build` 强制(重新)构建图像。如果省略该标志并且图像已经存在,则不会重建它。 (7认同)
  • @John`docker-compose up`只会在尚未存在的情况下构建图像.如果对图像所基于的Dockerfile进行更改并希望图像具有它们,则只需将`--build`标记添加到`up`,而不是手动删除图像并重新运行.我可能是错的,但使用`--build`标签也可能允许你使用缓存层不需要从头开始构建(即从第一次实际更改开始到Dockerfile). (6认同)
  • `docker-compose up -d` 是什么? (5认同)
  • 请注意,`docker-compose up -d` 的某些选项(例如 `-d`)不在仅用于 `docker-compose` 的文档中。您必须查看 https://docs.docker.com/compose/reference/up/ (3认同)
  • 所以如果我第一次在我的机器上运行 docker-compose up ,它会构建镜像,然后运行它? (2认同)