Docker Compose总览 | Overview of Docker Compose
Docker Compose概述
Looking for Compose file reference?
Find the latest version here.
Compose是定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用Compose文件来配置应用程序的服务。然后,使用单个命令创建并启动配置中的所有服务。要详细了解Compose的所有功能,请参阅功能列表。
Compose非常适合开发,测试和分段环境以及CI工作流程。您可以了解有关常见使用案例中每个案例的更多信息。
使用Compose基本上是一个三步过程。
- 用一个定义你的应用程序的环境,
Dockerfile
这样它就可以在任何地方再现。
docker-compose.yml
看起来像这样:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
有关撰写文件的更多信息,请参阅撰写文件参考。
Compose具有管理应用程序整个生命周期的命令:
- 开始,停止并重建服务
撰写文件
- 安装Compose
特征
使其有效的Compose功能包括:
- 单个主机上有多个独立的环境
单个主机上有多个独立的环境
撰写使用项目名称来隔离彼此的环境。您可以在多个不同的环境中使用此项目名称:
- 在开发主机上创建单个环境的多个副本(例如,您希望为项目的每个功能分支运行稳定副本)
默认项目名称是项目目录的基本名称。您可以使用-p
命令行选项或COMPOSE_PROJECT_NAME
环境变量设置自定义项目名称。
创建容器时保留卷数据
撰写会保留您的服务使用的所有卷。当docker-compose up
运行时,如果发现任何集装箱从之前的运行,它会将从旧容器到新容器的体积。此过程可确保您在卷中创建的任何数据都不会丢失。
如果您docker-compose
在Windows机器上使用,请参阅环境变量并根据您的特定需求调整必要的环境变量。
只重新创建已更改的容器
组合缓存用于创建容器的配置。当您重新启动未更改的服务时,Compose将重新使用现有的容器。重复使用容器意味着您可以快速更改环境。
变量并在环境之间移动合成
Compose支持Compose文件中的变量。您可以使用这些变量为不同的环境或不同的用户自定义组合。有关更多详情,请参阅变量替换
您可以使用该extends
字段或通过创建多个撰写文件来扩展撰写文件。请参阅延伸了解更多细节。
常见用例
撰写可用于许多不同的方式。下面概述了一些常见用例。
开发环境
在开发软件时,在孤立环境中运行应用程序并与其交互的能力至关重要。Compose命令行工具可用于创建环境并与之交互。
Compose文件提供了一种方式来记录和配置所有应用程序的服务依赖关系(数据库,队列,缓存,Web服务API等)。使用Compose命令行工具,您可以使用单个命令(docker-compose up
)为每个依赖项创建和启动一个或多个容器。
总之,这些功能为开发人员开始项目提供了一种便捷方式。撰写可以减少多页“开发人员入门指南”到一个机器可读的Compose文件和一些命令。
自动化测试环境
任何持续部署或持续集成过程的一个重要部分是自动化测试套件。自动化的端到端测试需要一个运行测试的环境。Compose提供了一种创建和销毁测试套件的独立测试环境的便捷方式。通过在Compose文件中定义完整的环境,您可以通过几条命令创建和销毁这些环境:
$ docker-compose up -d
$ ./run_tests
$ docker-compose down
单个主机部署
撰写传统上一直专注于开发和测试工作流程,但每次发布我们都在更多面向生产的功能方面取得进展。您可以使用Compose部署到远程Docker引擎。Docker引擎可以是配备Docker Machine或整个Docker Swarm集群的单个实例。
有关使用面向生产功能的详细信息,请参阅本文档中的制作。
发行说明
要查看过去和当前版本的Docker Compose变更的详细列表,请参阅CHANGELOG。
获得帮助
Docker Compose正在积极开发中。如果您需要帮助,想要贡献,或者只是想与志趣相投的人讨论这个项目,我们有许多开放的沟通渠道。
有关更多信息和资源,请访问Getting Help项目页面。
documentation, docs, docker, compose, orchestration, containers