目录
Docker Compose是什么?
安装Docker Compose
访问github选择所需版本的压缩包下载到本地
授权
检查安装情况以及版本
Docker Compose yml配置文件
Docker Compose使用案例
Docker Compose是什么?
compose、machine 和 swarm 是docker 原生提供的三大编排工具。简称docker三剑客,Docker Compose能够在 Docker 节点上,以单引擎模式(Single-Engine Mode)进行多容器应用的部署和管理。多数的现代应用通过多个更小的微服务互相协同来组成一个完整可用的应用。将以上服务组织在一起,就是一个可用的应用。部署和管理繁多的服务是困难的。而这正是 Docker Compose 要解决的问题。Docker Compose 并不是通过脚本和各种冗长的 docker 命令来将应用组件组织起来,而是通过一个声明式的配置文件描述整个应用,从而使用一条命令完成部署。应用部署成功后,还可以通过一系列简单的命令实现对其完整声明周期的管理。甚至,配置文件还可以置于版本控制系统中进行存储和管理。
安装Docker Compose
访问github选择所需版本的压缩包下载到本地
https://github.com/docker/compose/releases
本文选用的是1.27.4版本的docker-compose-Linux-x86_64,本人Docker所在虚拟机环境为CentOS Linux release 7.9.2009。我将压缩包下载到了/data文件夹下
授权
mv /data/docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
chmod 777 /usr/local/bin/docker-compose
检查安装情况以及版本
docker-compose -v
Docker Compose yml配置文件
Docker Compose 使用 YAML 文件来定义多服务的应用。YAML 是 JSON 的一个子集,因此也可以使用JSON。Docker Compose 默认使用文件名 docker-compose.yml。当然,也可以使用 -f 参数指定具体文件。Docker Compose 的 YAML 文件包含 4 个一级 key:version、services、networks、volumes
- version 是必须指定的,而且总是位于文件的第一行。它定义了 Compose 文件格式(主要是 API)的版本。注意,version 并非定义 Docker Compose 或 Docker 引擎的版本号。
- services 用于定义不同的应用服务
- networks 用于指引 Docker 创建新的网络。默认情况下,Docker Compose 会创建 bridge 网络。这是一种单主机网络,只能够实现同一主机上容器的连接。当然,也可以使用 driver 属性来指定不同的网络类型。
- volumes 用于指引 Docker 来创建新的卷。
Docker Compose使用案例
其中depend_on属性是一个数组,表示当前容器需要在指定容器启动后启动
version: "3"
services:
nginx:
image: nginx:1.19.3-alpine
restart: always
container_name: nginx
ports:
- 80:80
volumes:
- /data/docker-compose/nginx:/etc/nginx
tomcat1:
image: tomcat:9.0.20-jre8-alpine
restart: always
container_name: tomcat1
ports:
- 8081:8080
volumes:
- /data/docker-compose/tomcat1/webapps:/usr/local/tomcat/webapps
depends_on:
- nginx
tomcat2:
image: tomcat:9.0.20-jre8-alpine
restart: always
container_name: tomcat2
ports:
- 8082:8080
volumes:
- /data/docker-compose/tomcat2/webapps:/usr/local/tomcat/webapps
depends_on:
- nginx


