docker-compose build和docker build有什么区别?
docker-compose build
和之间有什么区别docker build
?
假设在dockerized项目路径中有一个docker-compose.yml
文件:
docker-compose build
和
docker build
-
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