使用 Docker 引擎 API 进行开发

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

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

Docker 引擎 API 是一个 RESTful API,可通过 HTTP 客户端(例如wgetcurl)或作为大多数现代编程语言一部分的 HTTP 库访问。

查看 API 参考

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

版本化 API 和 SDK

您应使用的 Docker 引擎 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:           26.0.0
 API version:       1.45
 Go version:        go1.21.8
 Git commit:        2ae903e
 Built:             Wed Mar 20 15:17:48 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.0.0
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.8
  Git commit:       8b79278
  Built:            Wed Mar 20 15:17:48 2024
  OS/Arch:          linux/amd64
  Experimental:     false
  ...

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

  • 使用SDK时,请使用最新版本。至少,使用将 API 版本与您需要的功能相结合的版本。

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

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

    $ DOCKER_API_VERSION='1.44'
    

    设置环境变量后,即使 Docker 守护程序支持较新版本,也会使用该版本的 API。此环境变量会禁用 API 版本协商,因此只有在必须使用特定版本的 API 或出于调试目的时才应使用它。

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

  • 对于 SDK,您还可以通过编程方式指定 API 版本作为对象的参数client。请参阅 Go 构造函数Python SDK 文档client

API版本矩阵

Docker版本最大API版本变更日志
26.01.45变化
25.01.44变化
24.01.43变化
23.01.42变化
20.101.41变化
19.031.40变化
18.091.39变化
18.061.38变化
18.051.37变化
18.041.37变化
18.031.37变化
18.021.36变化
17.121.35变化
17.111.34变化
17.101.33变化
17.091.32变化
17.071.31变化
17.061.30变化
17.051.29变化
17.041.28变化
17.03.11.27变化
17.031.26变化
1.13.11.26变化
1.131.25变化
1.121.24变化

已弃用的 API 版本

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