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.03.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 還使用了可選規範 - DeployDevelopBuild

為了簡化遷移,Compose V2 對 Compose 檔案格式 2.x/3.x 和 Compose 規範之間已棄用或更改的某些元素提供了向後相容性。

頁面選項