跳到正文

Docker Compose

申请更正

Docker Compose 是 Docker 推出的工具与规范,用于通过声明式配置文件定义并运行多容器应用。

最近更新 2026年11月4日

AI 爬虫读取

1次请求

1家公司
  • Anthropic1
词条页
0
争议页
0
JSON · MD
0
首次读取
2026年11月5日
最近读取
2026年11月5日

数据来自本站服务器日志

概览

Docker Compose 是一款开发者工具和配置规范,用于定义、创建、启动、停止和管理由多个容器组成的应用。用户在 YAML 文件(传统上命名为 docker-compose.yml 或 compose.yaml)中描述服务、网络、卷、环境变量、依赖关系及相关运行时设置。随后,一个 Compose 项目可以作为一个协调一致的应用被启动,而不必通过单独的命令行操作分别创建和连接每个容器。 该技术源于更广泛的容器开发生态,其前身是 Fig——一个简化运行 Docker 容器组的早期工具。Docker 于 2014 年收购 Fig,并以 Docker Compose 之名继续发展其能力。Compose 与本地开发、测试、演示和小规模自托管部署紧密相关,因为它提供了一种相对易用的方式,在开发者工作站上复现应用的服务拓扑。一个典型文件可能定义 Web 应用、数据库、缓存及支撑服务,同时让配置与源代码保持接近。 Compose 的重要性来自抽象,而非独立的托管服务。它为多容器项目提供了声明式应用模型和熟悉的工作流,使团队能够在开发者和自动化系统之间共享环境定义。其 YAML 格式还帮助确立了服务依赖、端口映射、持久化存储、健康检查、构建指令和网络隔离的通用词汇。即使生产工作负载最终运行在 Kubernetes、云容器平台或其他编排器上,Compose 文件也常被用作入门材料、集成测试配置和参考环境。 最初的 Compose 实现使用 Python 编写,作为独立的命令行程序运行。Docker 后来推出了基于 Go 的第二代实现 Docker Compose V2,以 Docker CLI 插件形式分发,并通过 docker compose 等命令调用。Compose V2 保留了与既有文件格式的大部分兼容性,同时使用户体验更贴近 Docker CLI。随后,Compose 规范提供了面向平台的文件模型描述,具体实现和功能支持随时间演进。 Docker Compose 主要由全球的软件开发者、平台工程师、教育工作者、开源维护者以及构建容器化应用的团队使用。它并非像 Kubernetes 那样规模的通用生产编排器,Docker 主要将其定位在单个 Docker 主机或密切相关环境上的开发工作流和应用管理。尽管如此,Compose 仍是 Docker 生态中一个广为人知的品牌,因为它降低了运行多个协作服务的操作门槛,并在源代码仓库与容器化执行之间提供了实用的桥梁。

沿革

Docker Compose 的起源可追溯到 Fig,这是一个为简化描述和运行 Docker 容器集合而创建的工具。在 Fig 和 Compose 等工具出现之前,开发者通常必须逐个创建容器、手动配置网络,并记住应用服务之间的关系。声明式项目文件提供了一种更具可复现性的替代方案:应用拓扑可以随代码一起存储,供团队其他成员使用。 Docker 于 2014 年收购 Fig,并以 Docker Compose 之名继续其开发。新名称将该工具与 Docker 不断扩展的产品生态联系起来,同时保留了其核心概念:一个 Compose 项目描述一组旨在协同运行的服务。Docker Compose 文件可以指定镜像或构建上下文、暴露端口、环境变量、链接或依赖、卷和网络。其成果对由 Web 服务和一个或多个支撑组件(如关系数据库、消息代理或缓存)组成的开发栈尤其有用。 Compose 成为面向容器开发中广泛使用的一部分。它帮助团队标准化本地环境,使多服务示例更易于分发,并为运行集成测试提供了便捷机制。其基于 YAML 的模型也成为人们学习 Docker 网络、存储、服务发现和容器生命周期管理的常见参考。尽管 Compose 有时用于小型部署,但通常与提供调度、自动恢复和跨多主机分布式控制的集群级编排器区分开来。 第一个主要实现是一个 Python 命令行应用,通常以 docker-compose 调用。随着 Docker 工具链的演进,公司用 Go 开发了 Compose V2,并将其作为插件集成到 Docker CLI 中。新接口以 docker compose 调用,不带历史连字符。Compose V2 旨在保留熟悉项目模型的同时,提供与 Docker 命令更紧密的集成和更易维护的实现。Docker 随后弃用并淘汰了旧版 Compose V1 系列。 Compose 规范将 Compose 应用文件的描述整合为面向平台的规范。它被用作 Compose 实现及相关工具的基础,而各实现支持的功能可能有所不同。Docker Desktop 包含 Compose 能力,Docker 文档将 Compose 呈现为在常见开发者工作流中定义和运行多容器应用的方式。 如今,Docker Compose 仍是 Docker 生态中活跃的产品。其主要受众包括应用开发者、DevOps 和平台团队、教育工作者、开源项目以及需要可重复环境而不采用完整集群编排器的组织。Compose 的持久角色是作为实用的应用定义层:它将一组容器化服务及其关系转化为可共享的项目,可通过一致的工作流启动、检查、更新和移除。

  • 2023

    Compose V1 生命周期结束

    [2]

    Docker 终止对 Compose V1 的维护,并引导用户转向 Compose V2。

  • 2021

    Compose V2 与 Docker CLI 集成

    [2]

    Docker 推广基于 Go 的 Compose V2 实现和 docker compose 命令,作为旧版基于 Python 命令的继任者。

  • 2020

    Compose 规范发布

    [3]

    Compose 文件模型被记录为 Compose 规范,提供了应用结构和服务配置的通用描述。

  • 2015

    Docker Compose 成为 Docker 生态工具

    [1]

    源自 Fig 的工作流以 Docker Compose 之名开发和分发,用于定义和运行多容器应用。

  • 2014

    Docker 收购 Fig

    [4]

    Docker 收购了多容器开发工具 Fig,其能力构成了 Docker Compose 的基础。

产品与定位

一种声明式、面向开发者的多容器应用建模与运行方式,定位介于单条 Docker 容器命令与更大规模的生产级编排平台之间。

  • 开发者工具

    Docker Compose CLI

    用于创建和管理 Compose 项目的命令行界面。它支持启动、停止、重建、检查和移除 Compose 文件中描述的服务组等操作。现代 Compose V2 作为 Docker CLI 插件分发,使用 docker compose 命令。

  • 配置规范 · 2020

    Compose 规范

    用于描述多容器应用的面向平台规范。它定义了服务、网络、卷、配置、密钥、依赖和项目级设置等概念,而具体支持的功能集由各实现决定。

  • 应用定义

    Compose 文件

    捕获应用服务及其关系的 YAML 项目文件。它可以将预构建镜像与本地构建容器结合,并描述网络、存储、环境配置、健康检查和启动依赖。

  • 桌面开发者工具

    Docker Desktop Compose 集成

    捆绑在 Docker Desktop 工作流中的 Compose 功能,允许桌面用户与镜像、容器、卷及其他 Docker 资源一起运行和管理多容器项目。

品牌决策

  • 2021

    使 Compose V2 成为现代实现换代

    背景

    最初的 Compose 实现是一个独立的基于 Python 的命令行工具,而 Docker 正围绕 Docker CLI 整合其开发者命令。

    采取的行动

    Docker 推进 Compose V2——一个基于 Go 的 Docker CLI 插件,通过 docker compose 调用,并开始弃用旧版 docker-compose 命令。

    后续影响

    用户被鼓励将项目和脚本迁移到 Compose V2;旧版实现随后达到生命周期终点。

  • 2014

    收购 Fig 并将其发展为 Docker Compose并购

    背景

    Fig 提供了一种开发者友好的方法来定义和运行 Docker 容器组。Docker 的收购为公司提供了多容器应用工作流的直接基础。

    采取的行动

    Docker 收购了 Fig,并将其技术和团队纳入 Docker 的产品开发,随后以 Docker Compose 之名呈现该能力。

    后续影响

    此次收购帮助 Compose 确立了作为 Docker 本地和面向开发的多容器应用标准工作流的地位。

近期事件

  • 尚未确定

    Ekinops推出Compose软件品牌[6]

    Ekinops宣布推出新的软件品牌Compose,将公司的网络接入和光传输软件产品整合在一起。

阅读更多

来源6 个来源

引用本词条: 请引用规范词条页。 /brand-wiki/docker-compose · 编辑方针 · 词条如何编纂