Docker Engine API

Docker 提供了一組用於與 Docker Daemon 互動的 API(稱為 Docker Engine API),以及適用於 Go 和 Python 的 SDK。這些 SDK 能協助您高效地建立並擴展 Docker 應用程式與解決方案。如果您不使用 Go 或 Python,也可以直接使用 Docker Engine API。

關於 Docker Engine SDK 的詳細資訊,請參閱 使用 Docker Engine SDK 開發

Docker Engine API 是一組 RESTful API,可透過 HTTP 客戶端(例如 wgetcurl)或大多數現代程式語言內建的 HTTP 函式庫來存取。

檢視 API 參考資料

您可以 檢視最新版本 API 的參考資料選擇特定版本

版本化 API 與 SDK

您應該使用的 Docker Engine API 版本,取決於您的 Docker Daemon 和 Docker 客戶端的版本。

特定版本的 Docker Engine SDK 支援該版本的 Docker Engine API 以及所有較早的版本。若有破壞性的變更,都會在文件中顯著標註。

注意

Docker Daemon 與客戶端並不一定需要始終保持版本一致。不過,請留意以下幾點:

  • 如果 Daemon 的版本比客戶端新,客戶端將無法得知 Daemon 中的新功能或已棄用的 API 端點。

  • 如果客戶端的版本比 Daemon 新,客戶端可能會請求 Daemon 不支援的 API 端點。

當加入新功能時,就會發布新版本的 API。Docker API 具有向後相容性,因此除非您需要利用新功能,否則無需更新使用 API 的程式碼。

若要查看您的 Docker Daemon 與客戶端所支援的最高 API 版本,請使用 docker version

$ docker version
Client: Docker Engine - Community
 Version:           28.4.0
 API version:       1.51
 Go version:        go1.24.7
 Git commit:        d8eb465
 Built:             Wed Sep  3 20:57:32 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.4.0
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.7
  Git commit:       249d679
  Built:            Wed Sep  3 20:57:32 2025
  OS/Arch:          linux/amd64
  ...

您可以透過以下任一方式指定要使用的 API 版本:

  • 使用 SDK 時,請使用最新版本。至少應使用包含您所需功能之 API 版本的對應版本。

  • 直接使用 curl 時,請將版本號作為 URL 的第一部分。例如,如果端點是 /containers/,您可以使用 /v1.51/containers/

  • 若要強迫 Docker CLI 或 Docker Engine SDK 使用比 docker version 所報告的更舊版 API,請將環境變數 DOCKER_API_VERSION 設定為正確的版本。此方法適用於 Linux、Windows 或 macOS 客戶端。

    $ DOCKER_API_VERSION=1.50
    

    設定此環境變數後,系統將強制使用該版本的 API,即使 Docker Daemon 支援更新的版本。此環境變數會停用 API 版本交涉(negotiation),因此只有在您必須使用特定版本的 API 或進行偵錯時才應使用。

  • Docker Go SDK 允許您啟用 API 版本交涉,自動選取客戶端與目前使用的 Docker Engine 皆支援的 API 版本。

  • 對於 SDK,您也可以在程式碼中將 API 版本作為 client 物件的參數進行指定。請參閱 Go 建構函式Python SDK 的 client 文件

API 版本矩陣

已棄用的 API 版本

v1.24 之前的 API 版本已被 棄用。您可以在 GitHub 的程式碼儲存庫中找到已棄用 API 版本的存檔文件。

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