Docker-Compose服务编排
docker-compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。
1:使用Compose 基本上分为三步过程:
1:Dockerfile 定义应用的运行环境
2:docker-compose.yml 定义组成应用的各服务
3:docker-compose up 启动整个应用
2:Docker Compose 工作原理图
Compose中几个重要的概念:
任务(task):一个容器被称为一个任务,任务拥有独一无二的ID,在同一个服务中的多个任务序号依次递增。
服务(serveice):某个相同应用镜像的容器副本集合,一个服务可以横向拓展为多个容器实例。
服务栈(stack):由多个服务组成,相互配合完成特定业务,如web应用服务,数据库服务共同构成web服务栈,一般由一个docker-compose.yml文件定义。compose的默认管理对象是服务栈,通过子命令对栈中的多个服务进行便捷的生命周期管理。
Compose项目有python编写,实际上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。
Docker-Compose安装
1、使用二进制安装
wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 && mv docker-compose-linux-x86_64 docker-compose && chmod +x docker-compose && mv docker-compose /usr/local/bin
# 查看版本
[root@virtual_host ~]# docker-compose version
Docker Compose version v2.2.3
创建Web负载均衡服务栈
[root@virtual_host web]# docker-compose up -d
[+] Running 4/4
⠿ haproxy Pulled 36.0s
⠿ e62d08fa1eb1 Pull complete 12.2s
⠿ b5638da587ee Pull complete 12.5s
⠿ 3553620c41aa Pull complete 12.5s
[+] Running 5/5
⠿ Network web_default Created 0.0s
⠿ Container web-webc-1 Started 1.2s
⠿ Container web-weba-1 Started 0.9s
⠿ Container web-webb-1 Started 1.1s
⠿ Container web-haproxy-1 Started 1.3s
[root@virtual_host web]# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
web-haproxy-1 "/docker-entrypoint.…" haproxy running 0.0.0.0:70->70/tcp, 0.0.0.0:80->80/tcp, :::70->70/tcp, :::80->80/tcp
web-weba-1 "/bin/sh -c 'python …" weba running 80/tcp
web-webb-1 "/bin/sh -c 'python …" webb running 80/tcp
web-webc-1 "/bin/sh -c 'python …" webc running 80/tcp![web1.png](https://i.postimg.cc/sgP6w5Mb/web1.png)](https://postimg.cc/cvHBJgMc)
3:Docker-Compose常用命令
命令 说明
docker-compose build 建立或者重建服务
docker-compose bundle 创建一个可分发的配置包,包括整个服务栈的所有数据
docker-compose config 验证和查看Compose文件
docker-compose create 创建服务
docker-compose down 停止和删除容器,网络,镜像和卷
docker-compose events 从容器接收实时事件
docker-compose exec 登录正在运行的容器执行命令
docker-compose images 镜像列表
docker-compose kill 杀掉容器
docker-compose logs 查看容器的输出
docker-compose pause 暂停容器
docker-compose port 为端口绑定打印公共端口
docker-compose ps 容器列表
docker-compose pull 下载服务镜像
docker-compose push 上传服务镜像
docker-compose restart 重启容器
docker-compose rm 删除停止的容器
docker-compose run 运行一次性的命令
docker-compose scale 设置服务的容器数量
docker-compose start 启动服务
docker-compose stop 停止服务
docker-compose top 显示运行过程
docker-compose unpause 暂停服务
docker-compose up 创建并启动容器