Docker Engine API
Docker 提供了一個 API 來與 Docker 守護程式(稱為 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 守護程式和 Docker 用戶端的版本。
特定版本的 Docker Engine SDK 支援特定版本的 Docker Engine API,以及所有先前的版本。如果發生重大變更,將會清楚地記錄。
注意
Docker 守護程式和用戶端不必始終保持相同的版本。但是,請記住以下事項。
如果守護程式的版本比用戶端新,則用戶端不知道守護程式中的新功能或已棄用的 API 端點。
如果用戶端的版本比守護程式新,則用戶端可以請求守護程式不知道的 API 端點。
新增新功能時,會發佈新版本的 API。Docker API 具備回溯相容性,因此除非您需要利用新功能,否則不需要更新使用 API 的程式碼。
要查看 Docker 守護程式和用戶端支援的 API 最高版本,請使用 docker version
$ docker version
Client:
Version: 27.3.1
API version: 1.47
Go version: go1.22.7
Git commit: ce12230
Built: Fri Sep 20 11:38:18 2024
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.36.0 (172961)
Engine:
Version: 27.3.1
API version: 1.47 (minimum version 1.24)
Go version: go1.22.7
Git commit: 41ca978
Built: Fri Sep 20 11:41:19 2024
OS/Arch: linux/arm64
Experimental: false
...
您可以透過下列任何方式指定要使用的 API 版本
使用 SDK 時,請使用最新版本。至少要使用包含您所需功能的 API 版本。
直接使用
curl
時,請將版本指定為 URL 的第一個部分。例如,如果端點是/containers/
,您可以使用/v1.47/containers/
。若要強制 Docker CLI 或 Docker Engine SDK 使用比
docker version
報告的版本更舊的 API 版本,請將環境變數DOCKER_API_VERSION
設定為正確的版本。這適用於 Linux、Windows 或 macOS 用戶端。$ DOCKER_API_VERSION=1.46
設定環境變數後,即使 Docker 守護程式支援較新的版本,也會使用該版本的 API。此環境變數會停用 API 版本協商,因此只有在您必須使用特定版本的 API 或進行除錯時才應該使用它。
Docker Go SDK 允許您啟用 API 版本協商,自動選擇客戶端和正在使用的 Docker Engine 都支援的 API 版本。
對於 SDK,您也可以以程式設計方式將 API 版本指定為
client
物件的參數。請參閱 Go 建構函式 或 Python SDK 文件中關於client
的說明。
API 版本矩陣
Docker 版本 | 最高 API 版本 | 變更記錄 |
---|---|---|
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 版本的封存文件。