六、Docker服务编排
6.1、 服务编排概念
● 微服务架构的应用系统中一般包含若干个微服务,每个微服务般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。
▶ 要从Dockerfilebuild image或者去dockerhub拉取image。
▶ 要创建多个container。
▶ 要管理这些container (启动停止删除)。
● 服务编排,按照一定的业务规则批量管理容器
6.2、 Docker Compose概述
Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建、启动和停止。使用步骤:
① 利用Dqckerfile定义运行环境镜像
② 使用docker-compose.yml定义组成应用的各服务
③ 运行docker-compose up启动应用
6.3、 Docker Compose 的安装和卸载
6.3.1、安装
● Compose目前已经完全支持Linux、 Mac OS和windows,在安装Compose之前,需要先安装Docker。以编译好的二进制包方式安装在Linux系统中。
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname-s`-`uname -m` -o /usr/local/bin/docker-compose
或者:
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compos
要安装其他版本的Compose,可以将1.24.1替换为要安装的Compose版本
● 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
● 查看版本信息
docker-compose -version
6.3.2、卸载
● 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
6.4、案例—— Docker Compose 的使用
6.4.1、使用步骤
① 创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compos e
② 编写docker-compose.yml文件
③ 创建/nginx/conf.d目录
mkdir -p ./nginx/conf.d
④ 在./nginx/conf.d目录下编写 xxx .conf文件
server{
listen 80;
access_log off;
location / {
proxy_pass http://app: 8080;
}
}
⑤ 在-/docker-compose目录下使用docker-compose启动容器
docker-compose up
⑥ 测试访问
http://ip/hello
6.4.2、 docker-compose.yml 模板
version: '3'
services:
web:
build: .
ports:
\- "5000:5000"
volumes:
\- .:/code
\- logvolume01:/var/log
links:
\- redis
redis:
image: redis
volumes:
logvolume01: {}