Docker Compose 的歷史和發展
本頁提供
- Docker Compose CLI 開發簡史
- Compose V1 和 Compose V2 主要版本和檔案格式的清晰解釋
- Compose V1 和 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 還使用了可選規範 - Deploy、Develop 和 Build。
為了簡化遷移,Compose V2 對 Compose 檔案格式 2.x/3.x 和 Compose 規範之間已棄用或更改的某些元素提供了向後相容性。