什么是docker-compose
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排
通过编写docker-compose.yml文件可对多个服务同时进行启动/停止/更新(可定义依赖,按顺序启动服务)
docker-compose将所管理的容器分为3层结构:
| 名称 | 节点 | 组成 |
|---|---|---|
| project | 1 | 一个微服务项目 |
| service | N | 由N个微服务组成 |
| container | N | 而每个微服务又由N个节点组成 |
docker-compose.yml组成一个project,project里包括多个service,每个service定义了容器运行的镜(或构建镜像),
网络端口,文件挂载,参数,依赖等,每个service可包括同一个镜像的多个容器实例。
即 project 包含 service ,service 包含 container
- 注1:Docker-Compose的工程配置文件默认为docker-compose.yml
- 注2:compose英文意思:组成
为什么要使用docker-compose
前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。
然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,
那么效率之低,维护量之大可想而知
而使用 Docker Compose 可以轻松、高效的管理容器,
它是一个用于定义和运行多容器 Docker 的应用程序工具。

使用compose基本上是一个三步过程:
1.用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制。
2.在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行。
3.运行docker compose up启动并运行整个应用程序。
习惯顺序:1注册中心 2.生产者 3.消费者 4.网关 5.数据库
总结:微服务的启动是有顺序的
docker-compose :是一个按顺序一键启动微服务的工具
docker-compose安装与配置
1.安装方式有3种
1.1.官网的方式去安装
1.2.pip进行安装
1.3.离线安装(本章介绍),官网下载速度太慢了,离线方式更快
2.离线安装
2.1.下载安装文件
访问https://github.com/docker/compose/releases,下载 docker-compose-Linux-x86_64,我是复制链接地址,
在迅雷中下载的,下载后,将docker-compose-Linux-x86_64重命名为docker-compose
2.2.将刚才下载的docker-compose文件上传到centos7的/usr/local/bin/目录下
- cd /usr/local/bin
rz
2.3.添加可执行权限
- chmod +x /usr/local/bin/docker-compose
2.4.通过查看版本,测试安装是否成功
- docker-compose -v
#查看所有命令 - docker-compose -h

3.1.创建Docker运行参数
使用flannel提供的脚本将subnet.env转写成Docker启动参数
- /opt/flannel/mk-docker-opts.sh -d /usr/flannel/docker_opts.env -c
3.2.修改Docker启动参数
编辑 systemd service 配置文件
- vim /lib/systemd/system/docker.service

3.3.重新加载systemd配置,并重启Docker即可,
- systemctl daemon-reload && systemctl restart docker && systemctl
status docker
如果启动不了可以查看防火墙状态
3. 综合示例:docker-compose部署nginx,挂载外置配置文件及项目
1.docker、docker-compose安装
2.nginx准备工作
docker search nginx
docker pull nginx
mkdir -p /zking/nginx/{conf,conf.d,html,log}
注1:因为在nginx镜像中没有安装vi或vim编辑器(安装又太麻烦了),无法编辑nginx配置文件,所以直接通过数据卷挂载上去更加方便
注2:将nginx配置文件nginx.conf上传到宿主机的挂载目录“/zking/nginx/conf”下
注3:将vue前端项目打包后上传到宿主机的挂载目录“/zking/nginx/html”下
3.在docker主机上新建/docker-compose/nginx
mkdir -p /docker-compose/nginx && cd /docker-compose/nginx
4.在/docker-compose/nginx目录下创建并编辑docker-compose.yml
cd /docker-compose/nginx
vim docker-compose.yml

5.后台启动服务
docker-compose up -d 2f

