Docker Compose 的历史与发展

本页面提供

  • Docker Compose CLI 发展的简要历史
  • 对构成 Compose v1 和 Compose v2 的主要版本和文件格式的清晰解释
  • Compose v1 和 Compose v2 之间的主要区别

简介

Image showing the main differences between Compose v1 and Compose v2

上图显示,目前支持的 Docker Compose CLI 版本是 Compose v2,它由 Compose 规范定义。

它还提供了文件格式、命令行语法和顶级元素的快速概览。这将在以下部分中详细介绍。

Docker Compose CLI 版本控制

Docker Compose 命令行二进制文件的第一个版本于 2014 年发布。它由 Python 编写,并通过 `docker-compose` 调用。通常,Compose v1 项目在 `compose.yaml` 文件中包含一个顶级 `version` 元素,其值范围从 `2.0` 到 `3.8`,这些值指的是特定的文件格式

Docker Compose 命令行二进制文件的第二个版本于 2020 年公布,由 Go 编写,并通过 `docker compose` 调用。Compose v2 忽略 `compose.yaml` 文件中的 `version` 顶级元素。

Compose 文件格式版本控制

Docker Compose CLI 由特定的文件格式定义。

Compose v1 的 Compose 文件格式发布了三个主要版本

  • 2014 年随 Compose 1.0.0 发布了 Compose 文件格式 1
  • 2016 年随 Compose 1.6.0 发布了 Compose 文件格式 2.x
  • 2017 年随 Compose 1.10.0 发布了 Compose 文件格式 3.x

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` 顶级元素变为可选。Compose v2 还利用了可选规范 - 部署开发构建

为了使迁移更容易,Compose v2 对在 Compose 文件格式 2.x/3.x 和 Compose 规范之间已弃用或更改的某些元素具有向后兼容性。

下一步是什么?

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.