前言


最近在使用 podman, 需要调用一些 podman的接口,podman官网提供的接口并不是很详尽,使用 unix.sock 的方式调用有一

些困难。后来测试 ai 工具时,其提供了一个比较好用的库:podman, 适用了一下,感觉还不错,在此记录一下。

正文


安装 podman 库

pip install podman

简单的控制脚本

podman_ctl.py

# -*- coding:utf-8 -*-
from podman import PodmanClient class PodmanCtl(object):
"""
podman控制类
""" def __init__(self, base_url:str=None) -> None:
# 创建 Podman 客户端实例
if base_url is not None:
self.base_url = base_url
else:
self.base_url = 'unix:///run/user/0/podman/podman.sock'
self.client = PodmanClient(base_url= self.base_url) def get_all_containers(self):
"""
获取所有的容器信息
"""
container_list = self.client.containers.list()
for container in container_list:
print(vars(container)) def get_all_images(self):
"""
获取所有的镜像信息
"""
image_list = self.client.images.list()
for image in image_list:
print(vars(image)) def search_image_by_name(self, name:str):
"""
根据名称搜索镜像
"""
result_list = self.client.images.search(name)
for result in result_list:
print(result) def get_container_status(self, container_name:str):
is_exists = self.client.containers.exists(container_name)
if is_exists:
container = self.client.containers.get(container_name)
status = container.status
print(f"container: {container_name} status: {status}")
else:
print(f"container: {container_name} not exists")
return if __name__ == "__main__":
# base_url = 'unix:///run/user/0/podman/podman.sock'
base_url = 'unix:///run/podman/podman.sock'
podman_ctl = PodmanCtl(base_url=base_url)
# podman_ctl.get_all_containers()
# podman_ctl.get_all_images()
# podman_ctl.search_image_by_name("ubuntu")
podman_ctl.get_container_status("openresty")

注意,unix:///run/podman/podman.sock 是一个通用的 podman.sock, 如果想要某个用户的 podman.sock,

需要使用用户登录后,执行 id 指令查询用户id, 然后找到对应的如 unix:///run/user/0/podman/podman.sock,

user 后的 0 就是用户的id, 最好 ls /run/user/0/podman/podman.sock 查询一下有没有这个路径。

python3 podman库的更多相关文章

  1. 【转】python3解析库lxml

    转自:http://www.cnblogs.com/zhangxinqi/p/9210211.html 阅读目录 1.python库lxml的安装 2.XPath常用规则 (1)读取文本解析节点 (2 ...

  2. python3+requests库框架设计01-自动化测试框架需要什么?

    什么是自动化测试框架 关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架. 接口自动化测试框架核心无非是选择 一个用来编 ...

  3. python3解析库pyquery

    pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语 ...

  4. 8.Python3标准库--数据持久存储与交换

    ''' 持久存储数据以便长期使用包括两个方面:在对象的内存中表示和存储格式之间来回转换数据,以及处理转换后数据的存储区. 标准库包含很多模块可以处理不同情况下的这两个方面 有两个模块可以将对象转换为一 ...

  5. 7.Python3标准库--文件系统

    ''' Python的标准库中包含大量工具,可以处理文件系统中的文件,构造和解析文件名,还可以检查文件内容. 处理文件的第一步是要确定处理的文件的名字.Python将文件名表示为简单的字符串,另外还提 ...

  6. 1.Python3标准库--前戏

    Python有一个很大的优势便是在于其拥有丰富的第三方库,可以解决很多很多问题.其实Python的标准库也是非常丰富的,今后我将介绍一下Python的标准库. 这个教程使用的书籍就叫做<Pyth ...

  7. Python3 标准库

    Python3标准库 更详尽:http://blog.csdn.net/jurbo/article/details/52334345 文本 string:通用字符串操作 re:正则表达式操作 diff ...

  8. python023 Python3 标准库概览

    Python3 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作 ...

  9. 比较两个文件的异同Python3 标准库difflib 实现

    比较两个文件的异同Python3 标准库difflib 实现 对于要比较两个文件特别是配置文件的差异,这种需求很常见,如果用眼睛看,真是眼睛疼. 可以使用linux命令行工具diff a_file b ...

  10. python3标准库总结

    Python3标准库 操作系统接口 os模块提供了不少与操作系统相关联的函数. ? 1 2 3 4 5 6 >>> import os >>> os.getcwd( ...

随机推荐

  1. 使用.NET查询日出日落时间

    在WPF中,通过资源文件实现主题切换是个常见的功能,有不少文章介绍了如何实现手动切换主题.那如何实现自动切换主题呢?通常有两种机制:一是跟随系统明暗主题切换,二是像手机操作系统那样根据日出日落时间自动 ...

  2. 前端JavaScript开发风格规范

    开发者需要建立和遵守的规范 大致可以划分成这几个方向: 开发流程规范 代码规范 git commit规范 项目文件结构规范 UI设计规范 1. 开发流程规范 这里可能有小伙伴有疑问了,开发流程规范不是 ...

  3. win系统执行脚本报错策略更改无法加载文件 C:\Users\xx\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本

    Start-Process powershell -Verb runAs Get-ExecutionPolicy Get-ExecutionPolicy -List set-ExecutionPoli ...

  4. C语言:渔夫捕鱼算法问题

    题目:渔夫捕鱼 A,B,C,D,E五个渔夫夜间合伙捕鱼,,第二天清A先醒来,他把鱼均分五份,把多余的一条扔回湖中,便拿了自己的一份回家了,B醒来后,也把鱼均分五份,把多余的一条扔回湖中,便拿了自己的一 ...

  5. Python:Python对象模型与序列迭代陷阱

    1. Python对象模型与浅拷贝/深拷贝 1.1 Python对象模型和引用 在我们讲解Python的序列修改陷阱之前,先巩固一下Python的对象模型和浅拷贝/深拷贝的知识. 众所周知,Pytho ...

  6. visualstudio着色器设计器shadergraph使用

    第一次使用着色器设计器. vs的着色器设计器是hlsl的着色器设计器.不得不说里面节点得翻译是一坨屎. 附一个光线于法向量夹角渲染的设计图

  7. 🐬记一次MySQL执行修改语句超时问题

    异常问题 原因分析 这个问题发生在开发环境,怀疑是提交事务时终止项目运行,没有提交该事务,造成死锁 调试该事务时时间太长,为什么说有这个原因呢,因为通过查找日志显示 The client was di ...

  8. Winform 动态画曲线 波峰波谷识别

    项目需要识别数组的波峰波谷,我就想 可视化的测试自己的判断波峰波谷的算法,于是就有了下面这张图. 我就用gdi+再panel上描点,点画完后,就点击分析按钮蓝色的为波峰 绿色的为波谷.虽然说能识别出来 ...

  9. js实现 StringBuilder

    function StringBuilder() { this._stringArray = new Array(); } StringBuilder.prototype.append = funct ...

  10. JS / jQuery 刷新页面的方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...