使用Docker Engine API开发
预计阅读时间:5分钟
Docker提供了一个用于与Docker守护进程进行交互的API(称为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,以及所有早期版本。如果发生重大变化,则会在显眼位置进行记录。
守护程序和客户端API不匹配
Docker守护程序和客户端不必始终保持相同版本。但是,请记住以下几点。
如果守护程序比客户端新,则客户端不知道守护程序中的新功能或不推荐使用的API端点。
如果客户端比守护程序新,则客户端可以请求守护程序不知道的API端点。
添加新功能后,将发布API的新版本。Docker API向后兼容,因此除非需要利用新功能,否则无需更新使用该API的代码。
要查看您的Docker守护程序和客户端支持的API的最高版本,请使用
docker version
:
$ docker version
Client: Docker Engine - Community
Version: 20.10.0
API version: 1.41
Go version: go1.13.15
Git commit: 7287ab3
Built: Tue Dec 8 19:00:39 2020
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.0
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: eeddea2
Built: Tue Dec 8 18:58:12 2020
OS/Arch: linux/amd64
...
您可以通过以下方式之一指定要使用的API版本:
-
使用SDK时,请使用最新版本,但至少要使用将API版本与所需功能结合在一起的版本。
-
curl
直接使用时,将版本指定为URL的第一部分。例如,如果端点为/containers/
,则可以使用/v1.41/containers/
。 -
要强制Docker CLI或Docker Engine SDK使用比API报告的版本更旧的API版本
docker version
,请将环境变量DOCKER_API_VERSION
设置为正确的版本。这适用于Linux,Windows或macOS客户端。DOCKER_API_VERSION='1.41'
设置环境变量后,即使Docker守护程序支持较新的版本,也会使用该版本的API。此环境变量禁用API版本协商,因此,仅当必须使用特定版本的API或用于调试时,才应使用此环境变量。
-
Docker Go SDK允许您启用API版本协商,自动选择客户端和所使用的Docker Engine都支持的API版本。
-
对于SDK,您还可以通过编程方式指定API版本,作为
client
对象的参数。请参阅 Go构造函数 或的 Python SDK文档client
。
API版本矩阵
Docker版本 | 最高API版本 | 变更记录 |
---|---|---|
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 | 变化 |
1.11 | 1.23 | 变化 |
1.10 | 1.22 | 变化 |
1.9 | 1.21 | 变化 |
1.8 | 1.20 | 变化 |
1.7 | 1.19 | 变化 |
1.6 | 1.18 | 变化 |
存档的API版本
API的较早版本的文档已存档,但可以在GitHub上的docker代码存储库中找到
开发,API