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 引擎 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: Docker Engine - Community
Version: 27.4.0
API version: 1.47
Go version: go1.22.10
Git commit: bde2b89
Built: Sat Dec 7 10:38:33 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 27.4.0
API version: 1.47 (minimum version 1.24)
Go version: go1.22.10
Git commit: 92a8393
Built: Sat Dec 7 10:38:33 2024
OS/Arch: linux/amd64
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.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 版本的归档文档: