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 規格 (Compose Specification) 所定義。

本頁也快速概述了檔案格式、命令列語法以及頂層元素的差異。後續章節會有更詳細的說明。

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 檔案格式版本:

  • Compose 檔案格式 1:隨 2014 年的 Compose 1.0.0 發布
  • Compose 檔案格式 2.x:隨 2016 年的 Compose 1.6.0 發布
  • Compose 檔案格式 3.x:隨 2017 年的 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 頂層元素變更為可選項目。Compose v2 也使用了選用的規格:部署 (Deploy)開發 (Develop) 以及 建構 (Build)

為了讓 遷移 更容易,Compose v2 對某些在 Compose 檔案格式 2.x/3.x 與 Compose 規格之間已被棄用或變更的元素提供了向後相容性。

下一步是什麼?

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