一、概念

1、定义与定位

Podman(Pod Manager)是符合OCI标准的容器引擎,用于管理容器、镜像及Pod(多容器组)。它无需守护进程(Daemonless),直接通过Linux内核功能(如命名空间、cgroups)运行容器,是更轻量安全的Docker替代方案。

镜像:Image,是容器的“模板”,本质上是只读的静态文件包(包含运行应用所需的所有依赖,如代码、环境、库、配置等)和分层存储结构(由多个只读层叠加而成,每一层代表一次修改)。

容器:Container,本质是镜像的动态表现形式(即基于镜像创建的可读写进程环境)。

  • 镜像相当于“安装程序”,容器是“安装后运行的程序”。

  • 类比:

    • 镜像 = 虚拟机.iso文件

    • 容器 = 从该ISO启动的虚拟机实例

核心区别总结

维度镜像(Image)容器(Container)
状态静态(只读)动态(可读写)
存储分层文件(存储在/var/lib/containers运行时产生的可写层
生命周期长期存在,可版本管理临时运行,停止后可销毁
创建方式podman build 构建podman run 从镜像启动
数量关系1个镜像 → 可启动N个容器1个容器 → 基于1个镜像

解释:

OCI标准:OCI是由Linux基金会主导的开放容器计划,旨在制定容器镜像与运行时的统一标准

无需守护进程:

  • Docker的守护进程(dockerd)问题

    • root权限运行,一旦被入侵则整个主机面临风险。

    • 单点故障:守护进程崩溃会导致所有容器不可用。

  • Podman的无守护进程架构
    • 直接通过fork/exec模式调用OCI运行时(如runc),容器进程成为Podman的直接子进程。

    • 权限隔离:容器以当前用户权限运行(非Root模式),通过Linux用户命名空间映射容器内root为宿主普通用户。

    • 优势:安全性提升、资源消耗更低、更符合Unix单一职责原则

2、关键特性

无守护进程设计:

        直接调用runc管理容器,避免单点故障和权限滥用风险。

Podman直接通过 fork/exec 调用 runc
Docker通过 containerd 间接调用 runc

啥是runc?

runc 是容器技术的核心引擎,是真正在操作系统层面创建和运行容器的底层工具。

无根模式(Rootless):

        podman可以让普通用户直接运行容器,利用用户命名空间隔离权限。即使容器内进程以root运行,在宿主机仍映射为普通用户。

兼容Docker生态:

        支持Docker镜像(如docker.io/library/nginx)及相同CLI命令(run、build等)。


二、命令

1、安装podman

dnf install podman -y

2、镜像管理

(1)搜索镜像

搜索nginx的镜像

podman search nginx   # 搜索公共仓库中的镜像

(2)查看正在运行的镜像

podman ps

(3)查看本地镜像

podman images

(4)删除镜像 

podman rmi nginx:alpine        # 删除指定镜像

(5)登录仓库

podman login utility.lab.example.com(你要登录的仓库)

(6)运行镜像

podman run -dit --name web -p 8080:80 nginx:alpine

命令分解:

  1. podman run

    • 创建并启动新容器

  2. -d

    • 守护进程模式(detached mode):容器在后台运行

  3. --name web

    • 为容器指定名称 web(便于后续管理)

  4. -it:交互式终端(常与 /bin/bash 联用)

  5. -p 8080:80:宿主机端口绑定容器端口

  6. nginx:alpine:指定的仓库和标签

(7)有容器时的操作

1)容器状态操作
podman start web        # 启动已停止的容器
podman stop web         # 停止运行中的容器
podman restart web      # 重启容器
podman kill web         # 强制终止容器
 2)查看容器信息
podman ps               # 查看运行中的容器
podman ps -a            # 查看所有容器(含停止状态)
podman inspect web      # 查看容器详细配置(IP、挂载点等)
3)删除容器
podman rm web           # 删除停止的容器
podman rm -f web        # 强制删除运行中的容器

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

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

相关文章

Spring Boot DFS、HDFS、AI、PyOD、ECOD、Junit、嵌入式实战指南

Spring Boot分布式文件系统 以下是一些关于Spring Boot分布式文件系统(DFS)的实现示例和关键方法,涵盖了不同场景和技术的应用。这些示例可以帮助理解如何在Spring Boot中集成DFS(如HDFS、MinIO、FastDFS等)或模拟分布式存储。 使用Spring Boot集成HDFS 基础配置 // 配…

解决GoLand运行go程序报错:Error: Cannot find package xxx 问题

问题描述 一个简单的go程序,代码如下 package mainimport "fmt" func main() {// 占位符,和java的String.format用法一样fmt.Printf("我%d岁,我叫%s", 18, "yexindong") }结构如下当我想要运行时却报错 Error:…

Spring MVC设计精粹:源码级架构解析与实践指南

文章目录一、设计哲学:分层与解耦1. 前端控制器模式2. 分层架构设计二、核心组件源码解析1. DispatcherServlet - 九大组件初始化2. DispatcherServlet - 前端控制器(请求处理中枢)请求源码入口:FrameworkServlet#doGet()请求委托…

k8s之控制器详解

1.deployment:适用于无状态服务1.功能(1)创建高可用pod(2)滚动升级/回滚(3)平滑扩容和缩容2.操作命令(1)回滚# 回滚到上一个版本 kubectl rollout undo deployment/my-app# 回滚到特定版本&…

.NET Core中的配置系统

传统配置方式文件Web.config 进行配置。ConfigurationManager类配置。.NET配置系统中支持配置方式文件配置(json、xml、ini等)注册表环境变量命令行自定义配置源Json文件配置方式实现步骤:创建一个json文件,把文件设置 为“如果较…

kafka的消费者负载均衡机制

Kafka 的消费者负载均衡机制是保证消息高效消费的核心设计,通过将分区合理分配给消费者组内的消费者,实现并行处理和负载均衡。以下从核心概念、分配策略、重平衡机制等方面详细讲解。一、核心概念理解消费者负载均衡前,需明确三个关键概念&a…

腾讯云edges on部署pages

腾讯云edges on部署pages适用场景部署方式官方文档 适用场景 Next.js Hexo 以及用React Vue等现代前端框架构建的单页应用全栈项目开发 通过Pages Function KV等能力 实现轻量化的动态服务快速部署与迭代 通过Github等代码管理平台集成 每次代码提交时自动构建和部署网站 注…

SpringAI入门及浅实践,实战 Spring‎ AI 调用大模型、提示词工程、对话记忆、Adv‎isor 的使用

上一次写AI学习笔记已经好久之前了,温习温习,这一章讲讲关于Spring‎ AI 调用大模型、对话记忆、Adv‎isor、结构化输出、自定义对话记忆‍、Prompt 模板的相关知识点。 快速跳转到你感兴趣的地方一、提示词工程(Prompt)1. 基本概…

对抗攻击-知识点

文章目录自然图像往往靠近机器学习分类器学习到的决策边界(decision boundaries)。正交方向--改变某一个不影响其它的特征降采样(Feature Downsampling)通过黑盒攻击的持续挑战,我们才能构建真正安全可靠的智能系统DCT…

7.26 作业

一、实验要求及其拓扑图: 本次实验拓扑图: 二、实验IP地址划分: 1. 公网地址(R5 作为 ISP,使用公网地址): R1 与 R5 之间接口:15.1.1.0/24,R1 侧为 15.1.1…

Kafka运维实战 14 - kafka消费者组消费进度(Lag)深入理解【实战】

目录什么是消费者 Lag举例说明:Lag 的意义:Lag 监控和查询kafka-consumer-groups基本语法常用命令示例1. 查看单个消费者组的详细信息(最常用)2. 列出所有消费者组(只显示名称)3. 列出所有消费者组&#xf…

设计模式(十三)结构型:代理模式详解

设计模式(十三)结构型:代理模式详解代理模式(Proxy Pattern)是 GoF 23 种设计模式中的结构型模式之一,其核心价值在于为其他对象提供一种间接访问的机制,以控制对原始对象的访问。它通过引入一个…

24点数学游戏(穷举法求解表达式)

摘要本毕业设计旨在利用MATLAB技术实现一个24点数学游戏,采用穷举法求解所有可能的表达式组合。通过全排列数字、枚举运算符及括号位置,结合递归回溯算法,系统能够高效地搜索所有可能的运算路径,并验证结果是否为24。实验结果表明…

【web应用】如何进行前后端调试Debug? + 前端JavaScript调试Debug?

文章目录一、前后端:后端以Debug模式运行后端项目,打断点二、前后端:前端项目在浏览器中调试三、单独前端:前端JavaScript调试1、控制台输出2、网页调试器中添加断点3、debugger关键字一、前后端:后端以Debug模式运行后…

FreeCAD开发楼梯参数化三维模型和钢格栅

根据楼梯标准图集开发各种楼梯。上行左转,上行右转,对应的栏杆也是配套2种。楼梯总成钢格栅标准里的跨度和承载 扁钢尺寸,轻松切换和修改参数。格栅综合本来格栅上横杆是冷轧扭钢筋,先绘制一个圆柱,再做一个内切正方形…

【AcWing 836题解】合并集合

AcWing 836. 合并集合 【题目描述】 在查看解析之前,先给自己一点时间思考哦! 【题解】 并查集是一种用于处理集合合并与查询问题的数据结构,通常支持以下两种操作: Find:查询一个元素所在的集合。 Union&#xff1a…

MySQL锁机制与MVCC原理剖析

在MySQL中,我们使用到了它的各种类锁;按照它的维度,有各种锁 从数据库的操作粒度有,表锁,行锁。从数据库的操作的类型,有读锁和写锁。性能上有乐观锁和悲观锁。 在上一篇文章中的事务隔离级别,需…

C++学习(线程相关)

目录 一、线程库thread 1.使用外部函数 2. 使用类的函数 3. 添加参数 二、线程库 mutex 1.使用lock()方法 2.try_lock()方法 三、线程库lock_guard 四、线程库unique_lock 1.adopt_lock 2.defer_lock() 五、线程库call_once 六、线程库promise & future 七、c…

EPOLLONESHOT 深度解析:Linux epoll 的单次触发机制

EPOLLONESHOT 深度解析:Linux epoll 的单次触发机制 EPOLLONESHOT 是 Linux epoll 接口中的高级事件标志,用于实现精确的事件单次触发控制。以下是其全面技术解析: 核心设计理念 #mermaid-svg-Xg5sCLdddqmKsvKG {font-family:"trebuchet…

深入解析MongoDB分片原理与运维实践指南

深入解析MongoDB分片原理与运维实践指南 技术背景与应用场景 随着互联网业务的高速发展,单节点MongoDB实例在数据量和访问并发上都面临瓶颈。为了解决数据存储容量受限和读写性能下降的问题,MongoDB官方提供了分片(Sharding)方案&…