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 客戶端(例如 wget 或 curl)或大多數現代程式語言內建的 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 版本矩陣
| Docker 版本 | 最高 API 版本 | 變更紀錄 |
|---|---|---|
| 28.3 | 1.51 | 變更 |
| 28.2 | 1.50 | 變更 |
| 28.1 | 1.49 | 變更 |
| 28.0 | 1.48 | 變更 |
| 27.5 | 1.47 | 變更 |
| 27.4 | 1.47 | 變更 |
| 27.3 | 1.47 | 變更 |
| 27.2 | 1.47 | 變更 |
| 27.1 | 1.46 | 變更 |
| 27.0 | 1.46 | 變更 |
| 26.1 | 1.45 | 變更 |
| 26.0 | 1.45 | 變更 |
| 25.0 | 1.44 | 變更 |
| 24.0 | 1.43 | 變更 |
| 23.0 | 1.42 | 變更 |
| 20.10 | 1.41 | 變更 |
| 19.03 | 1.40 | 變更 |
| 18.09 | 1.39 | 變更 |
| 18.06 | 1.38 | 變更 |
| 18.05 | 1.37 | 變更 |
| 18.04 | 1.37 | 變更 |
| 18.03 | 1.37 | 變更 |
| 18.02 | 1.36 | 變更 |
| 17.12 | 1.35 | 變更 |
| 17.11 | 1.34 | 變更 |
| 17.10 | 1.33 | 變更 |
| 17.09 | 1.32 | 變更 |
| 17.07 | 1.31 | 變更 |
| 17.06 | 1.30 | 變更 |
| 17.05 | 1.29 | 變更 |
| 17.04 | 1.28 | 變更 |
| 17.03.1 | 1.27 | 變更 |
| 17.03 | 1.26 | 變更 |
| 1.13.1 | 1.26 | 變更 |
| 1.13 | 1.25 | 變更 |
| 1.12 | 1.24 | 變更 |
已棄用的 API 版本
v1.24 之前的 API 版本已被 棄用。您可以在 GitHub 的程式碼儲存庫中找到已棄用 API 版本的存檔文件。