前言


最近在使用 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. 我的书《Unity3D动作游戏开发实战》出版了

    首先感谢帮助和参与前期检阅的朋友们.本书是我经验积累的提炼,书中既有干货分享也有对基础内容的详解补充. 同时由于是第一次撰写书籍,许多地方仍有不足还请读者朋友们见谅. 在京东或当当等都可以购买到本书: ...

  2. 2D空间中比较两三角形相交与包含

    在处理UV重叠.CPU的ZFighting检测时会遇到2D空间中的三角形相交问题, 网上普遍是3D空间的相交解法,因此写本文研究下,不过虽然实现了需求, 但用的方法比较暴力. 效果如图: (鼠标拖动区 ...

  3. Ubuntu Snap 简述

    Ubuntu Snaps Ubuntu Snaps 是 Ubuntu 的母公司 Canonical 于 2016 年 4 月发布 Ubuntu16.04 LTS(LongTermSupport,长期支 ...

  4. CodePen 的国内替代「笔.COOL」,一个功能完备、使用便捷的在线HTML/CSS/JS编辑器和作品分享平台

    笔.COOL,是一个最近在国内崭露头角的在线HTML/CSS/JS编辑器和作品分享平台. 笔.COOL 提供了一个在线的 HTML.CSS 和 JavaScript 代码编辑器.无需任何安装,你只需打 ...

  5. 上位机开发福利!快速掌握.NET中的Modbus通信

    安装nuget包 Wesky.Net.OpenTools  1.0.8或以上版本.支持.net framework 4.6以上版本,以及所有.net core以及以上版本引用. 开发一个简单的Winf ...

  6. C# 【思路】分享 构造可进行单元测试的波形数据

    需要单元测试自己写的识别特殊波峰的算法,所以必须构造波形数据. 一开始是自己在控件上手绘波形,虽然这种方便,但是能绘制的点太少,每次手画显得麻烦. 过后,又采用随机数构造波峰,这种虽说能构造很多点,产 ...

  7. kubelet gc 源码分析

    代码 kubernetes 1.26.15 问题 混部机子批量节点NotReady(十几个,丫的重大故障),报错为: 意思就是 rpc 超了,节点下有太多 PodSandBox,crictl ps - ...

  8. SQL 分析与优化神器,验证了真相定律

    引言 今天要分享的是一个 SQL 语句分析的神器,它是一个基于 Soar 的开源 sql 分析与优化的 Web 图形化工具.我们在平常分析 SQL 语句,使用最多的方式就是 Explain 工具.了解 ...

  9. CSS操作——边框属性

    1.border-style(边框风格) 定义边框的风格,值可以有: /* none:没有边框,当border的值为none的时候,系统将会忽略[border-color] hidden:隐藏边框,低 ...

  10. 为什么SwiftUI使用struct, 限制使用class

    前言 在学习SwiftUI所有的地方,视图元素都定义一个struct并实现View协议,该协议定义body变量返回View类型. 但是为什么,这里一直是指定的struct, 而不是class呢? 尝试 ...