随着对 Docker 的使用场景增多,开发者希望从 Shell 以外的编程语言来进行集成。本文介绍一种通过 Python 调用 Docker CLI 的方案:Python-on-Whales。该项目旨在通过 Python 与 Docker CLI 的交互来实现功能,而非直接访问引擎 API。
与直接操作引擎 API 相比,Python-on-Whales 更贴近实际 CLI 的行为,因为它以与 Docker CLI 的交互为核心,输出也更符合命令行的实际输出。对于某些对 CLI 行为高度敏感的场景,这种方式往往更直观。
下面介绍一个来自社区的新方案:Python-on-Whales。它的目标是在 Docker CLI 与 Python 库之间建立一对一的映射,通过与 Docker CLI 交互来完成操作,而不是直接调用引擎 API。

如果需要执行 Docker 命令行操作,请使用 Python-on-Whales;如果需要直接对引擎进行底层调用,则考虑其他方案。
本篇文章将对比一些在其他方案中不可用但在 Python-on-Whales 中可用的功能:
- 使用 Docker Buildx 构建镜像
- 使用 Stack 在 Swarm 中进行部署
- 使用 Compose 部署到本地引擎
快速入门
安装 Python-on-Whales
pip install Python-on-Whales
Buildx 构建:Python-on-Whales 默认通过 Buildx 进行构建,并实时输出构建日志。

使用 Stack 部署到 Swarm
在本地 Swarm 集群上演示一个简单的堆栈。你会得到一个 Stack 对象,提供方法如下:Remove、 Services、 ps 等。

使用 Compose 部署到本地引擎

