当前位置: 首页 > news >正文

Podman安装与使用

1.Podman简介

Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。

Podman的主要功能包括:

  1. 创建和管理容器:Podman可以创建、启动、停止和删除容器,以及管理容器的生命周期。
  2. 容器镜像管理:Podman可以下载、存储和导出容器镜像,以及创建基于镜像的容器。
  3. 容器网络管理:Podman可以创建和管理容器的网络连接,包括桥接网络和覆盖网络。
  4. 容器日志管理:Podman可以查看容器的日志信息,包括标准输出和错误输出。
  5. 容器资源管理:Podman可以限制容器的资源使用,包括CPU、内存和存储等。

Podman是一个命令行工具,提供了一个与Docker兼容的命令行界面。Podman控制下的容器可以由root或非特权用户运行,这增加了系统的安全性和灵活性。

总的来说,Podman是一个功能强大的容器管理工具,可以用于开发和运行OCI容器,无需使用Docker守护进程,具有轻量级和高效的特点。

2.Podman安装

下载

Podman安装 | (podman.io)icon-default.png?t=N7T8https://podman.io/docs/installation

先决条件:由于 Podman 使用 WSL,因此您需要最新版本的 Windows 10 或 Windows 11。在 x64 上,WSL 需要内部版本 18362 或更高版本,arm19041 系统需要 64 或更高版本。在内部,WSL 使用虚拟化,因此系统必须支持并启用硬件虚拟化。如果在 VM 上运行 Windows,则必须具有支持嵌套虚拟化的 VM。
安装Podman

安装 Windows Podman 客户端首先要下载 Podman Windows 安装。Windows安装程序是随每个Podman版本一起构建的,可以从官方 Github 发布页面下载。请务必下载 4.1 或更高版本。

下载后,只需运行exe文件,然后重新启动新终端。在新终端输入podman machine init

 如果重启输入 podman machine init 之后出现以下情况,可以再次关闭终端,再重启之后输入 podman machine init,就可以了

Error: head request failed: https://github.com/containers/podman-wsl-fedora/releases/latest/download/rootfs.tar.xz: Head "https://github.com/containers/podman-wsl-fedora/releases/latest/download/rootfs.tar.xz": read tcp 192.168.133.156:60309->20.205.243.166:443: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

初始化过程完成后,可以启动和停止Podman

至此,Podman安装完成,关闭当前所有终端,重启新终端后会有如下界面,进入就可以正常使用了

 

Rootful&Rootless

在WSL 上,podman既可以在根用户(root)下运行,也可以在非特权用户(root less)下运行。为了与Linux上的Podman保持行为一致性,默认为无根。注意:有根容器和无根容器是不同的,彼此隔离。针对其中一个的Podman命令(例如Podman ps)不会代表另一个的结果/状态。

Podman 是一个容器引擎工具,允许用户在 Linux 上运行应用程序容器。通常,在 Linux 上运行容器需要 root 权限,但 Podman 可以允许非 root 用户使用容器。简单来说,如果你是一个非 root 用户,并且想要使用 Podman 运行容器,那么你可以直接安装和运行 Podman 软件,而无需获取 root 权限。这个功能非常有用,因为它可以避免不必要的安全风险和权限访问问题。

需注意,虽然 Podman 允许非 root 用户使用容器,但这也意味着您的容器将受到更多限制,例如无法运行全部操作系统等。因此,建议您在需要时与管理员协商并根据情况选择正确的权限。

Docker 默认情况下在 Linux 上是以 root 权限运行,这就意味着如果您想使用 Docker 运行容器,您必须作为 root 用户登录到系统中。这可能会带来一些安全风险,因为 root 用户拥有系统上所有资源的完全控制权,而这并不总是安全或必要的。

不过,Docker 也提供了对非 root 用户访问容器的支持。与 Podman 不同的是,Docker 要求您手动将非 root 用户添加到 docker 组中以实现这一点。这个方法需要管理员权限,并且需要特殊的配置才能正常使用。

与 Docker 相比,Podman 更适合需要以非 root 用户身份管理容器的用户。Podman 可以直接在普通用户下运行,无需任何特殊配置或添加用户到任何组中。这可以使整个容器生命周期更加安全和可靠。

总之,Podman 和 Docker 的区别在于如何允许非 root 用户访问容器。Podman 允许非 root 用户直接运行容器,而 Docker 则需要特殊配置和权限来实现类似的功能。

切换rootful

podman machine stop
podman machine set --rootful

切换rootless

podman machine stop
podman machine set --rootful=false

常用命令

 What is Podman? — Podman documentation

Podman用法与Docker用法十分类似,所以你用过Docker,Podman上手应该很快。

3.补充:

在centos中,也可以通过yum install podman来安装podman使用,不过这种方法下载的podman不是最新版本,而是比较旧的版本。比如在centos7.7.1908中,通过yum install podman下载安装podman的版本信息为1.6.4。

注意,由于上面centos的版本为centos7.7.1908,所以当centos使用overlay2存储驱动时无法正常使用1.6.4版本的podman,podman 1.6.4版本要想使用overlay存储驱动正常工作,centos版本要7.8以上才可以。

相关文章:

Podman安装与使用

1.Podman简介 Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。 Podman的主要功能包括: 创建和管理容器:Podman可以创建、启动、停止和删除容器,以及管理容器的生命周期。容器镜像管理&#xff1…...

C++ 嵌套循环

一个循环内可以嵌套另一个循环。C 允许至少 256 个嵌套层次。 语法 C 中 嵌套 for 循环 语句的语法: for ( init; condition; increment ) {for ( init; condition; increment ){statement(s);}statement(s); // 可以放置更多的语句 }C 中 嵌套 while 循环 语句的…...

锁( ReentrantLock,Synchronized)

1.lock和synchronized 语法层面 synchronized 是关键字,源码在 jvm 中,用 c 语言实现; Lock 是接口,源码由 jdk 提供,用 java 语言实现; 使用 synchronized 时,退出同步代码块锁会自动释放&…...

主频计算-架构真题(二十三)

某文件系统采用多级索引结构,若磁块大小为4K字节,每个块号需占4个字节,那么采用二级索引结构时的文件最大长度可占用()个物理块。 1、1024 2、1024*1024 3、2048*2048 4、4096*4096 答案:B 解析&…...

docker安装redis实操记录

1.Docker拉取镜像 docker pull redis2.Docker挂载配置文件 创建挂载文件夹 mkdir -p /home/redis/data下载默认配置文件 redis.conf 3.启动redis 容器 docker run --restartalways --log-opt max-size100m --log-opt max-file2 -p 6379:6379 --name redis -v /home/redi…...

MobaXterm 突破14个session限制

通常情况下:随着工作时间的增长,我们会保存许许多多的linux到本地的mobastream,然后当超过14个,就会被被限制,这个会让人很头疼。 1. 安装python,配置好环境变量 测试安装成功: 2. 基于项目进行…...

使用Redisson实现高并发抢红包

一、概述 1、简介 在传统的抢红包场景中,如果面临高并发请求,通常需要考虑加锁来保证数据的一致性。而在分布式环境下,为了解决分布式锁的问题,我们可以使用Redisson这样的分布式Java对象和服务框架来实现。 本篇博客将演示如何…...

【网络编程】TCP/IP协议(互联网的基石)

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…...

【VS Code插件开发】自定义侧边栏、视图(六)

🐱 个人主页:不叫猫先生,公众号:前端舵手 🙋‍♂️ 作者简介:前端领域优质作者、阿里云专家博主,共同学习共同进步,一起加油呀! 📢 资料领取:前端…...

lv3 嵌入式开发-8 linux shell脚本函数

目录 1 函数的定义 2 函数的调用 3 变量的作用域 4 练习 1 函数的定义 基本语法: function name() {statements[return value] }function是 Shell 中的关键字,专门用来定义函数; name是函数名; statements是函数要执行…...

国际版阿里云腾讯云免费开户:服务器怎样转移

阿里云服务器怎样转移 阿里云服务器作为云核算范畴的领军企业之一,为用户供应了高性能、可靠、安全的云服务器服务。随着业务的发展和需求的改动,或许会有需求将阿里云服务器进行转移的情况。本文将介绍阿里云服务器转移的步骤和注意事项,帮…...

区块链实验室(20) - FISCO控制台连接到指定的节点

在FISCO技术文档中,控制台默认采用config.toml作为配置文件,并指定了连接的节点地址和商品,如下所示。 [network] peers["127.0.0.1:20200", "127.0.0.1:20201"] # The peer list to connect在该案例中,控…...

网络渗透day10-工具和技术

以下为网络渗透的工具和技术。 让我更详细地描述网络渗透测试的各个阶段以及使用的工具。 1. 信息收集阶段: 目标识别: 在这一阶段,渗透测试人员确定测试的目标,例如特定的服务器、应用程序或网络。 开放源情报(OSIN…...

SSE 和 WebSocket 应用

SSE 和 WebSocket 应用 一.SSE 和 WebSocket 对比二.SSE 和 WebSocket 调试SpringBoot 下 SSE 应用1.依赖2.启动类3.接口类4.Html 测试5.测试结果 SpringBoot 下 WebSocket 应用1.依赖2.启动类3.WS 切点配置4.WS连接类配置5.WS Html 测试6.测试结果 一.SSE 和 WebSocket 对比 …...

mac帧 arp

1.分片 2.MSS max segment size 3.跨网络的本质 就是经历很多的子网或者局域网 4.将数据从A主机跨网络送到B主机的能力 IP和mac IP解决的是路径选择的问题 5.数据链路层 用于两个设备(同一种数据链路节点)之间进行传递 6.以太网ether 7.局域网通…...

java面试题-Redis相关面试题

Redis相关面试题 面试官:什么是缓存穿透 ? 怎么解决 ? 候选人: 嗯~~,我想一下 缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询&…...

你用过 Maven Shade 插件吗?

文章首发地址 Maven Shade插件是Maven构建工具的一个插件,用于构建可执行的、可独立运行的JAR包。它解决了依赖冲突的问题,将项目及其所有依赖(包括传递依赖)合并到一个JAR文件中。 下面是对Maven Shade插件的一些详解&#xff…...

Android 后台启动Activity适配

在Android 9及以下版本,后台启动Activity相对自由,但是如果在Activity上下文之外启动Activity会有限制。 Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag所以此时需要给intent添加flag&#x…...

使用element-ui中的el-table回显已选中数据时toggleRowSelection报错

最近在写一个后台&#xff0c;需要在表格中多选&#xff0c;然后点击编辑按钮的时候&#xff0c;需要回显已经选中的表单项 <el-table v-loading"loading" :data"discountList" :row-key"(row) > row.id" refmultipleTable selection-cha…...

Ubuntu18.04系统下通过ROS控制Kinova真实机械臂-多种实现方式

所用测试工作空间test_ws&#xff1a;包含官网最原始的功能包 一、使用Kinova官方Development center控制真实机械臂 0.在ubuntu系统安装Kinova机械臂的Development center&#xff0c;这一步自行安装&#xff0c;很简单。 1.使用USB连接机械臂和电脑 2.Development center…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...