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客户端。
4.Docker Go SDK允许您启用API版本协商,自动选择客户端和所使用的Docker engine都支持的API版本。
5.对于SDK,您还可以通过编程方式指定API版本,作为client对象的参数。请参阅 Go构造函数 或的 Python SDK文档client。
