Docker Compose
概览
Compose 是用来定义和运行多容器的 Docker 应用的工具。通过 Compose,可以利用一个 Compose 文件来配置应用服务,然后利用一条命令就可以从配置中创建和启动所有的服务。使用 Compose 基本上是一个三步的过程:
- 通过一个 Dockerfile 来定义应用的环境,以便能在任何地方被复制
- 在 docker-compose.yml 文件中定义构成应用的服务,以便这些服务能够在隔离环境中共同运行。
- 运行
docker-compose up
命令,Compose 将启动并运行整个应用。
Compose 特点
在一个宿主机上启动多个隔离环境
Compose 使用一个项目名称来隔离每个环境。可以在不同的上下文中使用这个项目名:
- 在开发主机上创建一个环境的多个副本(例如,为项目的每个功能分支运行一个稳定的副本)
- 在 CI 服务器上,为了防止构建互相干扰,可以将项目名称设置为唯一的构建号
- 在共享主机或开发主机上,防止使用相同的服务名的不同项目互相干扰
当容器被创建时保存卷数据
当命令 docker-compose up
运行的时候,如果它发现以前运行的任何容器,它将会将卷从旧容器复制到新容器,确保在卷中创建的任何数据不会丢失。
仅仅重建被修改的容器
Compose会缓存用于创建容器的配置。当重启没有被修改过的服务时,Compose 会重用已存在的容器。
变量和在环境间移动组合
Compose 在 Compose 文件中支持变量,因此可以使用变量来为不同的环境或用户定制不同的组合。
使用案例
开发环境
Compose 文件提供了一种方法来记录和配置所有应用程序服务依赖项。通过 docker-compose up
命令,你可以为每个依赖创建和启动一个或多个容器。
自动化测试环境
Compose 提供了一个方便的方法来为你的测试套件创建和销毁隔离的测试环境。
单机部署
可以使用 Compose 来将组合部署到一个远程的 Docker Engine 上。Docker Engine 可以是由 Docker Machine 提供的单一实例,也可以是一整个 Docker Swarm 集群。