Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器
官方文档 https://docs.docker.com/compose/install/compose-plugin/#installing-compose-on-linux-systems
安装步骤
curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
顺序执行这三条命令 出现版本号说明安装成功
卸载命令 rm /usr/local/bin/docker-compose
Compose使用的三个步骤
· 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
· 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。
· 最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线
Compose常用命令
docker-compose -h # 查看帮助
docker-compose up # 启动所有docker-compose服务
docker-compose up -d # 启动所有docker-compose服务并后台运行
docker-compose down # 停止并删除容器、网络、卷、镜像。
docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps # 展示当前docker-compose编排过的运行的所有容器
docker-compose top # 展示当前docker-compose编排过的容器进程
docker-compose logs yml里面的服务id # 查看容器输出日志
docker-compose config # 检查配置
docker-compose config -q # 检查配置,有问题才有输出
docker-compose restart # 重启服务
docker-compose start # 启动服务
docker-compose stop # 停止服务
演示
docker-compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。比如我们要开发一个Web项目,除了运行后端应用接口的容器,还需要依赖MySQL、Redis、RabbitMQ、Nginx等容器,那么就可以通过一个docker-compose.yml来统一编排管理这一组容器
vim docker-compose.yml 文件
version: "3.2" # 指定compose的版本
services:
nginx1: # 代表一个容器的服务名称,在文件中必须唯一
image: nginx:latest # 指定用哪个镜像来创建这个容器
ports:
- "8080:80" # 指定容器与宿主机的端口映射
nginx2:
image: nginx:latest
ports:
- "8081:80"
docker-compose up 可以同时启动2个容器
docker ps 查看容器状态
yml文件每个:后面都要有空格 要不然会报错