在现代 DevOps 和云原生开发中,Docker SDK for Python(也称为 docker-py)是一个非常强大的工具。它允许开发者通过 Python 脚本直接与 Docker 守护进程通信,实现对容器、镜像、网络等资源的自动化管理。无论你是刚接触容器技术的小白,还是希望提升自动化能力的开发者,这篇教程都将带你从零开始掌握 docker-py 的基本用法。
Docker SDK for Python 是官方推荐的 Python 库,用于与 Docker 引擎进行交互。它封装了 Docker Remote API,让你无需手动调用 REST 接口,就能以面向对象的方式操作 Docker。该库的 PyPI 包名为 docker,但常被简称为 docker-py。
首先,确保你的系统已安装 Docker 并正在运行。然后使用 pip 安装 Python SDK:
pip install docker 安装完成后,我们可以通过以下代码测试是否能成功连接本地 Docker 引擎:
import docker# 创建客户端实例(自动使用默认 socket)client = docker.from_env()# 获取 Docker 版本信息print(client.version()) 如果一切正常,你将看到类似如下的输出:
{'Platform': {'Name': 'Docker Engine - Community'}, 'Components': [...], 'Version': '24.0.5', ...} # 拉取 nginx 镜像image = client.images.pull('nginx:latest')print(f"镜像 {image.tags[0]} 已拉取") # 启动一个后台运行的 nginx 容器container = client.containers.run( "nginx:latest", detach=True, ports={'80/tcp': 8080})print(f"容器 {container.short_id} 已启动,可通过 http://localhost:8080 访问") # 获取所有容器(包括停止的)containers = client.containers.list(all=True)for c in containers: print(f"ID: {c.short_id}, 状态: {c.status}, 镜像: {c.image.tags[0] if c.image.tags else '无标签'}") # 停止并删除上面创建的容器container.stop()container.remove()print("容器已清理") 默认情况下,docker.from_env() 会读取当前用户的 Docker 环境变量(如 DOCKER_HOST)。如果你在 Linux 上运行,可能需要将用户加入 docker 用户组,否则会遇到权限错误:
sudo usermod -aG docker $USER ⚠️ 注意:赋予非 root 用户 Docker 权限等同于赋予其 root 权限,请谨慎操作。
通过本教程,你已经学会了如何使用 Docker SDK for Python(即 docker-py)来拉取镜像、运行容器、查看状态以及清理资源。这项技能对于实现 容器自动化、构建 CI/CD 流水线或开发 DevOps 工具链至关重要。
记住,Python Docker API 的功能远不止这些,你还可以管理卷、网络、服务(Swarm 模式)等。建议查阅 官方文档 深入学习。
现在,你可以尝试编写自己的脚本来自动化日常的 Docker 操作了!
本文由主机测评网于2025-12-21发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251210878.html