每日一講——Podman

一、概念

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)方案&…