Docker Compose 的历史和发展
此页面提供:
- Docker Compose CLI 的发展简史
- 对构成 Compose V1 和 Compose V2 的主要版本和文件格式的清晰说明
- Compose V1 和 Compose V2 之间的主要区别
介绍

上图显示,当前支持的 Docker Compose CLI 版本是 Compose V2,它由 Compose 规范定义。
它还提供了文件格式、命令行语法和顶级元素差异的快速快照。以下部分将更详细地介绍这一点。
Docker Compose CLI 版本控制
Docker Compose 命令行Binaries的第一个版本于 2014 年首次发布。它是用 Python 编写的,并使用docker-compose
.
通常,Compose V1 项目包含顶级version
元素中的compose.yml
file,其值范围为2.0
自3.8
,指的是特定的文件格式。
Docker Compose 命令行Binaries的第二个版本于 2020 年宣布,用 Go 编写,并使用docker compose
.
Compose V2 会忽略version
top-level 元素中compose.yml
文件。
编写文件格式版本控制
Docker Compose CLI 由特定文件格式定义。
发布了 Compose V1 的 Compose 文件格式的三个主要版本:
- 使用 1 年的 Compose 1.0.0 编写文件格式 2014
- 2016 年的 Compose 文件格式为 2.x 和 Compose 1.6.0
- 2017 年的 Compose 文件格式 3.x 和 Compose 1.10.0
Compose 文件格式 1 与以下所有格式有很大不同,因为它缺少顶级services
钥匙。
它的使用情况是历史的,以这种格式编写的文件不会与 Compose V2 一起运行。
Compose 文件格式 2.x 和 3.x 彼此非常相似,但后者引入了许多针对 Swarm 部署的新选项。
为了解决 Compose CLI 版本控制、Compose 文件格式版本控制和功能对等性(取决于是否使用 Swarm 模式)方面的混淆,文件格式 2.x 和 3.x 已合并到 Compose 规范中。
Compose V2 使用 Compose 规范进行项目定义。与之前的文件格式不同,Compose 规范是滚动的,它使version
top-level 元素可选。Compose V2 还使用了可选的规范 - Deploy、Develop 和 Build。
为了简化迁移,Compose V2 向后兼容在 Compose 文件格式 2.x/3.x 和 Compose 规范之间已弃用或更改的某些元素。