Docker 引擎 API
Docker 提供了一個用於與 Docker 守護程序(稱為 Docker Engine API)互動的 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 和 SDK
您應使用的 Docker Engine API 版本取決於您的 Docker 守護程式和 Docker 客戶端的版本。
給定版本的 Docker Engine SDK 支援特定版本的 Docker Engine API 以及所有早期版本。如果發生重大更改,將顯著記錄下來。
注意Docker 守護程序和客戶端不一定需要始終是相同的版本。但是,請記住以下幾點。
如果守護程序比客戶端新,則客戶端不知道守護程序中的新功能或已棄用的 API 端點。
如果客戶端比守護程序新,則客戶端可以請求守護程序不知道的 API 端點。
當新增新功能時,會發布新版本的 API。Docker API 向後相容,因此您無需更新使用 API 的程式碼,除非您需要利用新功能。
要檢視您的 Docker 守護程式和客戶端支援的最高 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
在設定環境變數期間,即使 Docker 守護程式支援更新的版本,也會使用該 API 版本。此環境變數會停用 API 版本協商,因此您只應在必須使用特定 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 版本的存檔文件