概述
Docker Compose是Docker官方开源项目,负责实现对Docker容器集群的快速编排。
Docker Compose允许通过一个单独的docker-compose.yml文件(yaml格式)来定义一组相关联的应用容器为一个项目。
安装
https://docs.docker.com/compose/install/
安装docker的时候,会自带安装的。
核心概念
一个文件:docker-compose.yml文件
两个要素:service和project
使用步骤
1)编写Dockerfile定义各个服务应用并构建出对应的镜像文件
2)使用docker-compose.yml定义一个完整业务单元,安排好整体应用的各个容器服务。
3)执行docker compose up命令启用整个应用程序。
docker-compose.yml编写
# 版本
version: "3.9"
# 涉及的服务定义
services:
#服务一
backend:
#对应的镜像名称以及版本,name:tag
image: justin.com/panda/panda-backend:v1
#依据对应目录下的Dockerfile进行构建
build: ./backend
#容器名称
container_name: panda-backend
#与宿主机映射的端口号
ports:
- "8080:8080"
- "50051:50051"
#与宿主机映射的容器卷,匿名容器卷,由宿主机进行管理
volumes:
- "/opt/log:/log"
#环境变量的定义
environment:
DATABASE_NAME: panda_backend
MINIO_PREVIEW_URL_HOST: "192.168.245.200"
#依存的网络
networks:
- panda_tier
#启动策略
restart: always
#服务二
frontend:
image: justin.com/panda/panda-frontend:v1
build: ./frontend
container_name: panda-frontend
ports:
- "80:80"
networks:
- panda_tier
restart: always
#网络的定义
networks:
panda_tier:
driver: bridge
常用命令
#创建并启动容器
docker compose up
#创建并启动容器(后台运行)
docker compose up -d
#后台创建并启动容器,在此之前先构建镜像
docker compose up -d --build
#指定对应的配置文件以及所属项目名称,后台创建并启动容器,在此之前先构建镜像
docker compose -f <dockerComposeFilePath> -p <projectName> up -d --build
#停止并删除容器、网络
docker compose down
#停止并删除容器、镜像、网络,等待60s
docker compose down --rmi all -t 60
#启动容器
docker compose start
#停止容器
docker compose stop
#停止容器,超时时间,单位:秒
docker compose stop -t [timeout seconds]
#查看包含的容器
docker compose ps