原标题:云计算核心技术Docker教程:Docker使用Docker Engine API开发
Docker提供了一个用于与Docker守护进程进行交互的API(称为Docker Engine API),以及用于Go和Python的SDK。使用SDK,您可以快速轻松地构建和扩展Docker应用程序和解决方案。如果Go或Python不适用于您,则可以直接使用Docker Engine API。
Docker Engine API是一种RESTful API,可通过HTTP客户端(例如wget或 curl)或HTTP库(大多数现代编程语言的一部分)进行访问。
版本化的API和SDK
您应使用的Docker Engine API的版本取决于Docker守护程序和Docker客户端的版本。
给定版本的Docker Engine SDK支持特定版本的Docker Engine API,以及所有早期版本。如果发生重大变化,则会在显眼位置进行记录。
Docker守护程序和客户端不必始终保持相同版本。但是,请记住以下几点。
1.如果守护程序比客户端新,则客户端不知道守护程序中的新功能或不推荐使用的API端点。
2.如果客户端比守护程序新,则客户端可以请求守护程序不知道的API端点。
添加新功能后,将发布API的新版本。Docker API向后兼容,因此除非需要利用新功能,否则无需更新使用该API的代码。
要查看您的Docker守护程序和客户端支持的API的最高版本,请使用 docker version;
您可以通过以下方式之一指定要使用的API版本:
1.使用SDK时,请使用最新版本,但至少要使用将API版本与所需功能结合在一起的版本。
2.curl直接使用时,将版本指定为URL的第一部分。例如,如果端点为/containers/,则可以使用 /v1.41/containers/。
3.要强制Docker CLI或Docker Engine SDK使用比API报告的版本更旧的API版本docker version,请将环境变量DOCKER_API_VERSION设置为正确的版本。这适用于Linux,Windows或macOS客户端。
DOCKER_API_VERSION='1.41'
设置环境变量后,即使Docker守护程序支持较新的版本,也会使用该版本的API。此环境变量禁用API版本协商,因此,仅当必须使用特定版本的API或用于调试时,才应使用此环境变量。
4.Docker Go SDK允许您启用API版本协商,自动选择客户端和所使用的Docker Engine都支持的API版本。
5.对于SDK,您还可以通过编程方式指定API版本,作为client对象的参数。请参阅 Go构造函数 或的 Python SDK文档client。