首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker Compose总览 | Overview of Docker Compose

Looking for Compose file reference? Find the latest version here.

Compose是定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用Compose文件来配置应用程序的服务。然后,使用单个命令创建并启动配置中的所有服务。要详细了解Compose的所有功能,请参阅功能列表。

Compose非常适合开发,测试和分段环境以及CI工作流程。您可以了解有关常见使用案例中每个案例的更多信息。

使用Compose基本上是一个三步过程。

  1. 用一个定义你的应用程序的环境,Dockerfile这样它就可以在任何地方再现。
  2. 定义组成您的应用程序的服务,docker-compose.yml以便它们可以在隔离的环境中一起运行。
  3. 最后,运行docker-compose up和撰写将开始并运行您的整个应用程序。

docker-compose.yml看起来像这样:

代码语言:javascript
复制
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文件中定义完整的环境,您可以通过几条命令创建和销毁这些环境:

代码语言:javascript
复制
$ docker-compose up -d
$ ./run_tests
$ docker-compose down

单个主机部署

撰写传统上一直专注于开发和测试工作流程,但每次发布我们都在更多面向生产的功能方面取得进展。您可以使用Compose部署到远程Docker引擎。Docker引擎可以是配备Docker Machine或整个Docker Swarm集群的单个实例。

有关使用面向生产功能的详细信息,请参阅本文档中的制作。

发行说明

要查看过去和当前版本的Docker Compose变更的详细列表,请参阅CHANGELOG

获得帮助

Docker Compose正在积极开发中。如果您需要帮助,想要贡献,或者只是想与志趣相投的人讨论这个项目,我们有许多开放的沟通渠道。

  • 要报告错误或文件功能请求:请使用Github上问题跟踪器
  • 与人们实时交流项目:请加入#docker-composefreenode IRC频道。
  • 要提供代码或文档更改:请在Github上提交请求

有关更多信息和资源,请访问Getting Help项目页面

扫码关注腾讯云开发者

领取腾讯云代金券