docker-py:在Python中轻松使用Docker引擎API,更加灵活地管理和使用容器性

news/2025/1/23 12:21:08/文章来源:https://www.cnblogs.com/o-O-oO/p/18687533

Docker是一种流行的容器技术,让开发者能够在各种环境中快速地构建、部署和管理应用程序。而docker-py是一个强大的Python库,可以让你通过Python代码与Docker引擎API进行互动,实现与Docker命令相同的功能。本文将详细介绍docker-py的安装、使用以及一些常见的操作示例,帮助你更好地利用这个工具。

什么是docker-py

docker-py是一个针对Docker Engine API的Python库,它允许开发者在Python应用中执行各种与Docker相关的操作,比如运行容器、管理容器、管理Docker Swarm等。这个库的存在减少了在命令行中操作Docker的需要,让开发者可以使用Python代码更灵活地控制Docker。

安装docker-py

要安装docker-py,你可以使用Python的包管理工具pip。在终端中运行以下命令:

pip install docker

这个命令会安装最新的稳定版本。需要注意的是,docker-py在6.0版本之前需要安装docker[tls]以支持SSL/TLS。但在后续的版本中,这已经不再是必须的,虽然为了向后兼容,仍然可以使用这个选项。

如何使用docker-py

安装完docker-py后,你就可以开始在Python代码中使用它了。首先,你需要连接到Docker。你可以使用默认的Unix套接字或环境中的配置信息来连接Docker:

import dockerclient = docker.from_env()

通过创建的client对象,你可以访问Docker的各种功能。

运行容器

使用docker-py运行容器非常简单。你可以运行官方的Ubuntu镜像,就像在命令行中那样:


client.containers.run("ubuntu:latest", "echo hello world")

此时,你应该能看到输出结果'hello world\n'

如果你想要运行一个容器并让它在后台执行,可以使用detach=True参数:

container = client.containers.run("bfirsh/reticulate-splines", detach=True)
print(container)

这行代码会在后台运行bfirsh/reticulate-splines镜像,并返回容器对象。

管理容器

docker-py还提供了容器管理的功能。你可以轻松地列出当前所有运行的容器:

for container in client.containers.list():print(container)

要获取特定容器的信息,可以使用容器ID:

container = client.containers.get('45e6d2de7c54')
print(container.attrs['Config']['Image'])  # 输出镜像名称

此外,你还可以查看容器的日志,或对容器进行停止等管理操作:

# 查看容器日志
print(container.logs())# 停止容器
container.stop()

你甚至可以实时流式传输日志输出:


for line in container.logs(stream=True):print(line.strip())

管理镜像

除了容器的管理,docker-py也可以用来管理Docker镜像。你可以拉取新的镜像或列出当前本地已有的镜像:


# 拉取nginx镜像
client.images.pull('nginx')# 列出本地镜像
for image in client.images.list():print(image)

这些命令让你在Python应用中对Docker镜像的操作变得轻松而高效。

总结

通过docker-py,开发者可以方便地在Python代码中使用Docker引擎API,提高了自动化和管理容器的灵活性。无论是基础的容器运行,还是复杂的Swarm管理,docker-py都能让你游刃有余。无论你是Docker的初学者还是有经验的开发者,熟练掌握docker-py都会为你的项目提供强有力的支持。

项目地址:docker-py GitHub

原创 小白这样学Python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873656.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里开源语音克隆CosyVoice2 整合包

CosyVoice2 win整合包 语音克隆CosyVoice2 链接:https://pan.quark.cn/s/5e75615a5cd4 修改webui.py默认值: # 修改默认推理模式 mode_checkbox_group = gr.Radio(choices=inference_mode_list, label=选择推理模式, value=inference_mode_list[1])# 修改随机推理种子 seed =…

KeyClicker 为用户带来真实键盘打字声音体验的应用,再现机械键盘与打字机的打字感受

如果你是一名作家,或者对打字机的声音情有独钟,KeyClicker 将是你的理想选择。许多作家认为,打字机的声音能让他们更专注、更有创作灵感。虽然实体打字机的魅力独特,但它缺乏现代设备的便捷功能,例如高效的编辑与数字化操作。而使用 KeyClicker,你既能享受打字机的经典声…

gdb调试小技巧——多个窗口显示

先用tty显示需要显示的终端的序号 ┌──(root㉿kali)-[~] └─# tty /dev/pts/3然后 vim ~/.gdbinit在文件后加一行 set context-output /dev/pts/2这里数字就是tty显示的数字 设置好之后打开gdb时就可以了

道路流量监测摄像机

道路流量监测摄像机是一种结合了监控摄像技术和交通管理的先进设备,旨在通过实时监测和分析道路上车辆的行驶情况,收集交通流量数据并进行统计分析。这种摄像机在城市交通管理、道路规划、交通安全等领域有着广泛的应用前景。道路流量监测摄像机是一种结合了监控摄像技术和交…

占用消防通道监测摄像机

占用消防通道监测摄像机是一种结合了智能分析技术和监控技术的先进设备,在预防火灾事故和保障人员安全方面具有重要意义。随着社会对安全意识不断提高以及相关法规标准日益完善,相信这种先进设备将会在更多领域得到广泛应用,并为我们创造更加安全、有序的公共环境。占用消防…

安全帽佩戴识别摄像机

安全帽佩戴识别摄像机的应用不仅仅是对现有安全管理模式的一种补充,更是对安全理念的一种革新。它打破了传统安全管理中依靠人工巡检、监督的局限性,实现了安全管理的自动化、智能化。它以一种高效、精准、持续的方式,让安全管理无处不在,让每一个工作人员都时刻处于安全的…

戴头盔识别摄像机

戴头盔识别摄像机是一种结合了智能分析技术和监控技术的先进设备,在提高安全意识和减少事故风险方面具有重要意义。随着社会对安全生产和公共秩序关注度不断提高以及相关法规标准日趋完善,相信这种先进设备将会在更多领域得到广泛应用,并为我们创造更加安全、健康的生活环境…

38个!第六批产业技术基础公共服务平台名单公布

https://mp.weixin.qq.com/s?__biz=MjM5OTUwMTc2OA==&mid=2650924081&idx=1&sn=4b020757ad7a231d0391def504479dbc&chksm=bddf0a2406acfe4e2b9612d57d3de64162d337594a44dc7f061cddcebc4d3a4982a904eb621e&scene=126&sessionid=1737537299#rd

c语言训练程序思维——贪吃蛇未完成版

c语言做的贪吃蛇,未完成,还剩“吃苹果”和“方向”,感兴趣者可以下载玩玩。(初学者,适合训练程序思维,涉及:多维数据、指针(非常值得关注)、结构体……) 通过网盘分享的文件:贪吃蛇源码分享(未完成)链接: https://pan.baidu.com/s/1FciXKqFRG3ZFUMnj7JjtTA 提取码…

plot--绘图库

目录plot--绘图库原文地址简介快速使用 plot--绘图库 原文地址 https://darjun.github.io/2020/04/12/godailylib/plot/简介 本文介绍 Go 语言的一个非常强大、好用的绘图库——plot。plot内置了很多常用的组件,基本满足日常需求。同时,它也提供了定制化的接口,可以实现我们…

查询语句-更新语句

描述查询语句->更新语句的过程:步骤0:编写查询的sql 步骤1:将 “SELECT * FROM” 修改为 “UPDATE” 步骤2:在 “WHERE” 之前新增SET关键字

2025年Rust权威指南、Rust程序设计语言中文版PDF下载

本书英文名为《The Rust Programming Language》,中文版名为《Rust权威指南》,社区翻译版名为《Rust程序设计语言》。 本书由 Rust 核心开发团队编写而成,由浅入深地探讨了 Rust 语言的方方面面。Rust程序员必读入门书籍。2025年《Rust权威指南》、《Rust程序设计语言》中文…