Python中如何操作Docker?有哪些实用的容器管理方案

来源:语言推理作者:越南程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《Python中如何操作Docker?有哪些实用的容器管理方案》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Python中如何操作Docker?有哪些实用的容器管理方案》有用,将其分享出去将是对创作者最好的鼓励。

在Python中操作Docker本质是通过调用Docker的API接口实现容器生命周期管理、镜像操作等功能,目前主流的实现方案基于官方提供的SDK或者第三方封装库完成,能够覆盖大部分日常容器管理需求。

Python中如何操作Docker?有哪些实用的容器管理方案

常用Python操作Docker的方案

1. docker-py库(官方推荐)

docker-py是Docker官方维护的Python SDK,封装了Docker Engine API的所有功能,支持容器、镜像、网络、卷等全维度操作,稳定性和兼容性都有保障,是大多数场景下的首选方案。

首先通过pip安装该库:

pip install docker

连接Docker服务的基本示例:

import docker

# 连接本地Docker服务,默认使用unix socket通信
client = docker.from_env()
# 如果是远程Docker服务,可以指定base_url参数
# client = docker.DockerClient(base_url="tcp://192.168.0.1:2375")
print(client.version())

2. 直接调用Docker API

如果不想依赖第三方库,也可以通过requests库直接请求Docker Engine的REST API,这种方式更灵活,但需要开发者自己处理请求参数和响应解析。

核心容器管理操作示例

容器创建与启动

创建并启动一个nginx容器的完整代码:

import docker

client = docker.from_env()

# 拉取nginx镜像,如果本地不存在会自动下载
client.images.pull("nginx:latest")

# 创建并启动容器
container = client.containers.run(
    image="nginx:latest",
    name="test_nginx",
    ports={"80/tcp": 8080},  # 映射宿主机8080端口到容器80端口
    detach=True  # 后台运行
)
print(f"容器ID: {container.id}")
print(f"容器状态: {container.status}")

容器状态查询与停止

查询所有运行中的容器,并停止指定容器的示例:

import docker

client = docker.from_env()

# 获取所有运行中的容器
running_containers = client.containers.list()
print("当前运行中的容器:")
for container in running_containers:
    print(f"容器名称: {container.name}, 容器ID: {container.id[:12]}")

# 停止指定名称的容器
target_container = client.containers.get("test_nginx")
target_container.stop()
print(f"容器{target_container.name}已停止")

容器删除与镜像清理

删除已停止的容器和本地无用镜像的操作:

import docker

client = docker.from_env()

# 获取所有容器(包括已停止的)
all_containers = client.containers.list(all=True)
for container in all_containers:
    if container.status == "exited":
        container.remove()
        print(f"已删除容器: {container.name}")

# 清理未使用的镜像
client.images.prune()
print("无用镜像清理完成")

方案选择建议

如果是常规的项目集成,优先选择docker-py库,它封装完善,代码可读性高,不需要处理底层API细节。如果是需要高度定制请求逻辑,或者运行环境无法安装第三方依赖的场景,可以选择直接调用Docker API的方式。无论选择哪种方案,都需要注意Docker服务的访问权限配置,避免未授权的操作风险。

DockerPython容器管理docker_py修改时间:2026-06-10 16:57:12

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。