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,可以通过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版本的存档文档