Docker 引擎 API

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

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

Docker 引擎 API 是一个 RESTful API,可以通过 HTTP 客户端(例如 wget 或 curl)或大多数现代编程语言自带的 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 SDK 使用比 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 版本的归档文档: