Docker 引擎 API

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

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

Docker Engine API 是由 HTTP 客户端访问的 RESTful API,例如wgetcurl或 HTTP 库,它是大多数现代编程语言的一部分。

查看 API 参考

您可以查看最新版本的 API 的参考,也可以选择特定版本

版本化的 API 和 SDK

您应该使用的 Docker Engine API 版本取决于 您的 Docker 守护程序和 Docker 客户端。

Docker Engine SDK 的给定版本支持 Docker Engine API 以及所有早期版本。如果发生重大更改, 它们被显著记录下来。

注意

Docker 守护程序和客户端不一定需要是相同的版本 在任何时候。但是,请记住以下几点。

  • 如果守护程序比 client 更新,则 client 不知道 new 功能或已弃用的 API 端点。

  • 如果客户端比守护程序新,则客户端可以请求 API 守护程序不知道的终端节点。

添加新功能时,将发布 API 的新版本。The 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 SDK 使用旧版本 的 API 版本,而不是docker version中,将 环境变量DOCKER_API_VERSION设置为正确的版本。这行得通 在 Linux、Windows 或 macOS 客户端上。

    $ DOCKER_API_VERSION=1.46
    

    设置环境变量时,会使用该版本的 API,甚至 如果 Docker 守护程序支持较新的版本。此环境变量 禁用 API 版本协商,因此您应该仅在必要时使用它 使用特定版本的 API,或用于调试目的。

  • Docker Go SDK 允许您自动启用 API 版本协商 选择客户端和 Docker 引擎都支持的 API 版本 那正在使用。

  • 对于 SDK,您还可以以编程方式将 API 版本指定为 参数添加到client对象。请参阅 Go 构造函数Python SDK 文档client.

API 版本矩阵

已弃用的 API 版本

v1.24 之前的 API 版本已弃用。 您可以在 API 的 GitHub 上的代码仓库: