Docker 引擎 API

Docker 提供了一个用于与 Docker 守护进程(称为 Docker Engine API)交互的 API,以及用于 Go 和 Python 的 SDK。这些 SDK 允许您高效地构建和扩展 Docker 应用程序和解决方案。如果 Go 或 Python 不适合您,您可以直接使用 Docker Engine API。

有关Docker Engine SDKs的信息,请参阅 使用 Docker Engine SDKs 进行开发

Docker Engine API 是一种 RESTful API,可以通过诸如 wgetcurl 的 HTTP 客户端访问,也可以通过大多数现代编程语言中的 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 SDKs使用比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 版本矩阵

已弃用的API版本

v1.24 之前的 API 版本已被 弃用。 您可以在 GitHub 上的代码仓库中找到已弃用 API 版本的存档文档: