天下風雲出我輩
一入江湖歲月催

Docker-Compose服务编排

docker-compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。

使用Compose 基本上分为三步过程:

  1. Dockerfile 定义应用的运行环境
  2. docker-compose.yml 定义组成应用的各服务
  3. docker-compose up 启动整个应用

 

Docker Compose 工作原理图

Compose中几个重要的概念:

  • 任务(task):一个容器被称为一个任务,任务拥有独一无二的ID,在同一个服务中的多个任务序号依次递增。
  • 服务(serveice):某个相同应用镜像的容器副本集合,一个服务可以横向拓展为多个容器实例。
  • 服务栈(stack):由多个服务组成,相互配合完成特定业务,如web应用服务,数据库服务共同构成web服务栈,一般由一个docker-compose.yml文件定义。compose的默认管理对象是服务栈,通过子命令对栈中的多个服务进行便捷的生命周期管理。

Compose项目有python编写,实际上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。

 

Docker-Compose安装

1、使用二进制安装

#下载安装
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m`
 -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

#查看版本
[[email protected] ~]# docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

#卸载
rm /usr/local/bin/docker-compose

2、安装bash命令补全

yum install -y bash-completion

curl -L https://raw.githubusercontent.com/docker/compose/1.23.2/contrib/completion/bash/docker-compose
 -o /etc/bash_completion.d/docker-compose

 

创建Web负载均衡服务栈

1、创建一个Haproxy负载均衡,后端挂载三个web服务容器。使用python程序实现简单的web应用,响应http请求,返回的页面将打印出访问者的IP和响应请求的后端容器的IP。相关代码见yesay

服务栈的目录树及相关文件:

[[email protected] ~]# tree haproxy_web/
haproxy_web/
├── docker-compose.yml
├── haproxy
│   └── haproxy.cfg
└── web
    ├── Dockerfile
    ├── index.html
    └── index.py

2、在后台运行启动容器

[[email protected] haproxy_web]# docker-compose up -d

3、查看启动的服务

[[email protected] haproxy_web]# docker-compose ps
        Name                       Command               State                   Ports                 
-------------------------------------------------------------------------------------------------------
haproxy_web_haproxy_1   /docker-entrypoint.sh hapr ...   Up      0.0.0.0:70->70/tcp, 0.0.0.0:80->80/tcp
haproxy_web_weba_1      /bin/sh -c python index.py       Up      80/tcp                                
haproxy_web_webb_1      /bin/sh -c python index.py       Up      80/tcp                                
haproxy_web_webc_1      /bin/sh -c python index.py       Up      80/tcp

4、访问本地80端口,刷新页面可以查看到后端容器ip的变化,以及70端口负载的统计信息

 

Docker-compose.yml模板文件的参数命令参考:Compose file reference

Docker:从入门到精通 yaml模板文件

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 创建并启动容器

 

赞(3) 打赏
未经允许不得转载:Anonym0x1 » Docker-Compose服务编排

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏