一尘不染

docker-compose build和docker build有什么区别?

docker

docker-compose build和之间有什么区别docker build

假设在dockerized项目路径中有一个docker-compose.yml文件:

docker-compose build

docker build

阅读 7418

收藏
2020-06-17

共1个答案

一尘不染

docker-compose可以被认为是DockerCLI的包装器(实际上,它是python中的另一种实现,如[注释中所述),以节省时间并避免500个字符长的行(并同时启动多个容器)。它使用一个名为的文件docker- compose.yml来检索参数。

您可以在此处找到docker-
compose文件格式的参考。

因此,基本上,docker-compose build您将阅读docker- compose.yml,查找包含该build:语句的所有服务,并docker build为每个服务运行一个。

每个人都build:可以指定Dockerfile,上下文和args传递给docker。

最后给出一个示例docker-compose.yml文件:

version: '3.2'

services:
  database:
    image: mariadb
    restart: always
    volumes:
      - ./.data/sql:/var/lib/mysql

  web:
    build:
      dockerfile: Dockerfile-alpine
      context: ./web
    ports:
      - 8099:80
    depends_on:
      - database

调用时docker-compose build,仅web目标将需要构建映像。该docker build命令如下所示:

docker build -t web_myproject -f Dockerfile-alpine ./web
2020-06-17