Docker Engine 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,可通过 wget 或 curl 等 HTTP 客户端,或大多数现代编程语言内置的 HTTP 库进行访问。
查看 API 参考文档
您可以 查看最新版本的 API 参考文档,或 选择特定版本。
版本化 API 和 SDK
您应使用的 Docker Engine API 版本取决于 Docker 守护进程和 Docker 客户端的版本。
特定版本的 Docker Engine SDK 支持特定版本的 Docker Engine API 以及所有早期版本。如果发生破坏性变更,这些变更会被显著记录。
NoteDocker 守护进程和客户端不必始终保持相同版本。但请注意以下几点:
如果守护进程版本比客户端新,客户端将无法了解守护进程中的新功能或已弃用的 API 端点。
如果客户端版本比守护进程新,客户端可能会请求守护进程未知的 API 端点。
当添加新功能时,会发布新版本的 API。Docker API 向后兼容,因此除非您需要使用新功能,否则无需更新使用 API 的代码。
要查看 Docker 守护进程和客户端支持的最高 API 版本,请使用 docker version 命令:
$ docker version
Client: Docker Engine - Community
Version: 29.2.0-rc.2
API version: 1.53
Go version: go1.25.6
Git commit: d5ed037
Built: Mon Jan 19 12:05:12 2026
OS/Arch: linux/arm64
Context: default
Server: Docker Engine - Community
Engine:
Version: 29.2.0-rc.2
API version: 1.53 (minimum version 1.44)
Go version: go1.25.6
Git commit: f164e50
Built: Mon Jan 19 12:05:12 2026
OS/Arch: linux/arm64
...
您可以通过以下任意方式指定要使用的 API 版本:
-
使用 SDK 时,请使用最新版本。至少应使用包含您所需功能对应 API 版本的版本。
-
直接使用
curl时,请在 URL 的第一部分指定版本。例如,如果端点是/containers/,可以使用/v1.53/containers/。 -
要强制 Docker CLI 或 Docker Engine SDK 使用比
docker version报告的更旧的 API 版本,请将环境变量DOCKER_API_VERSION设置为正确的版本。此方法适用于 Linux、Windows 或 macOS 客户端。$ DOCKER_API_VERSION=1.52在设置此环境变量期间,即使 Docker 守护进程支持更新的版本,也会使用该版本的 API。此环境变量会禁用 API 版本协商,因此仅在必须使用特定 API 版本或用于调试目的时才应使用。
-
Docker Go SDK 允许您启用 API 版本协商,自动选择客户端和正在使用的 Docker Engine 均支持的 API 版本。
-
对于 SDK,您还可以在程序中通过将 API 版本作为
client对象的参数来指定。请参阅 Go 构造函数 或 Python SDK 的client文档。
API 版本矩阵
| Docker 版本 | 最大 API 版本 | 变更日志 |
|---|---|---|
| 29.0 | 1.52 | 变更内容 |
| 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.44 之前的 API 版本已被弃用。您可以在 GitHub 代码仓库中找到已弃用 API 版本的归档文档: