有什么区别docker-compose builddocker build

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

docker-compose build

docker build

答案

docker-compose可以被视为Docker CLI周围的包装器(实际上,这是Python中的另一个实现在评论中说)为了获得时间并避免使用500个字符的线条(并同时启动多个容器)。它使用一个称为的文件docker-compose.yml为了检索参数。

您可以找到Docker-Compose文件格式的参考这里

基本上docker-compose build会读你的docker-compose.yml,寻找所有包含的服务build:声明并运行docker build为每一个。

每个build:可以指定Dockerfile,一个上下文,并争取传递给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

来自: stackoverflow.com