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 Engine 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:           28.4.0
 API version:       1.51
 Go version:        go1.24.7
 Git commit:        d8eb465
 Built:             Wed Sep  3 20:57:32 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.4.0
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.7
  Git commit:       249d679
  Built:            Wed Sep  3 20:57:32 2025
  OS/Arch:          linux/amd64
  ...

您可以通过以下任何一种方式指定要使用的 API 版本:

  • 使用 SDK 时,请使用最新版本。至少,使用包含您所需功能的 API 版本。

  • 直接使用 `curl` 时,将版本指定为 URL 的第一部分。例如,如果端点是 `/containers/`,您可以使用 `/v1.51/containers/`。

  • 要强制 Docker CLI 或 Docker Engine SDK 使用比 `docker version` 报告的版本更旧的 API 版本,请将环境变量 `DOCKER_API_VERSION` 设置为正确的版本。这适用于 Linux、Windows 或 macOS 客户端。

    $ DOCKER_API_VERSION=1.50
    

    在设置环境变量期间,即使 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 版本的存档文档

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.