Compose 是一个用于定义并运行多容器Docker应用的工具。先通过一个compose文件来配置你的应用服务,然后用一个简单的命令就可以创建并启动所有的应用服务了。
Compose的特性:
- 单主机多个隔离环境
Compose 使用项目名称来隔离各个环境。在不同的应用场景中使用这个特性:- 在开发机上,可以创建同一个环境的不同副本
- 在CI服务器上,可以设置项目名为一个唯一的build ID,从而避免build时互相干扰
- 在一个共享主机或开发机上,可能会存在相同服务名称的应用,通过这个特性可以避免互相干扰
默认的项目名称是项目目录的目录名,可以通过-p
命令行选项或者COMPOSE_PROJECT_NAME
指定。
- 保存容器创建时使用的卷(volumn)数据
- 只重新创建已更改的容器
Compose会缓存用于创建容器的配置,当重启一个未曾更改过的服务时,Compose会重用已存在的容器。这意味着你可以很快地改变你的环境。 - 支持变量,在不同的环境间定义不同的组合
使用Compose 基本上分为三个步骤
- 创建Compose file(docker-compose.yml),定义的你应用环境
- 定义组成你应用的所有服务
- 运行命令
docker-compose up
一个docker-compose.yml
文件示例如下:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
Compose的命令贯穿你应用的整个生命周期:
- 启动、停止、重建服务
- 查看运行中服务的状态
- 运行中服务的日志输出流
- 在一个服务上执行一次性命令