©
This document uses PHP Chinese website manual Release
Looking for Compose file reference? Find the latest version here.
Compose是定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用Compose文件来配置应用程序的服务。然后,使用单个命令创建并启动配置中的所有服务。要详细了解Compose的所有功能,请参阅功能列表。
Compose非常适合开发,测试和分段环境以及CI工作流程。您可以了解有关常见使用案例中每个案例的更多信息。
使用Compose基本上是一个三步过程。
用一个定义你的应用程序的环境,Dockerfile
这样它就可以在任何地方再现。
定义组成您的应用程序的服务,docker-compose.yml
以便它们可以在隔离的环境中一起运行。
最后,运行docker-compose up
和撰写将开始并运行您的整个应用程序。
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
入门
开始使用Django
开始使用Rails
开始使用WordPress
经常问的问题
命令行参考
撰写文件参考
使其有效的Compose功能包括:
单个主机上有多个独立的环境
创建容器时保留卷数据
只重新创建已更改的容器
变量并在环境之间移动合成
撰写使用项目名称来隔离彼此的环境。您可以在多个不同的环境中使用此项目名称:
在开发主机上创建单个环境的多个副本(例如,您希望为项目的每个功能分支运行稳定副本)
在CI服务器上,为了避免构建互相干扰,可以将项目名称设置为唯一的内部版本号
在共享主机或开发主机上,以防止可能使用相同服务名称的不同项目相互干扰
默认项目名称是项目目录的基本名称。您可以使用-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正在积极开发中。如果您需要帮助,想要贡献,或者只是想与志趣相投的人讨论这个项目,我们有许多开放的沟通渠道。
要报告错误或文件功能请求:请使用Github上的问题跟踪器。
与人们实时交流项目:请加入#docker-compose
freenode IRC频道。
要提供代码或文档更改:请在Github上提交请求。