<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Podman on BIT &amp; 42</title><link>https://CoderAmedal.github.io/tags/podman/</link><description>Recent content in Podman on BIT &amp; 42</description><generator>Hugo -- 0.160.1</generator><language>zh-CN</language><copyright>2025 Bit &amp;amp; 42. 这是生命、宇宙以及一切的终极版权声明</copyright><lastBuildDate>Tue, 19 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://CoderAmedal.github.io/tags/podman/index.xml" rel="self" type="application/rss+xml"/><item><title>Podman与Docker的架构分析</title><link>https://CoderAmedal.github.io/posts/podman-docker-architecture/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://CoderAmedal.github.io/posts/podman-docker-architecture/</guid><description>&lt;h1 id="podman与docker的架构分析"&gt;Podman与Docker的架构分析&lt;/h1&gt;
&lt;h2 id="为什么要关注这个对比"&gt;为什么要关注这个对比&lt;/h2&gt;
&lt;p&gt;Docker Desktop 从 2021 年起对大型企业收费，加上 Docker 本身的一些架构问题（守护进程单点故障、root 权限依赖），促使很多人开始考虑替代方案。Podman 是目前最成熟的替代者。&lt;/p&gt;
&lt;p&gt;我从一个日常使用容器的开发者的角度，聊聊这两个工具的核心差异。&lt;/p&gt;
&lt;h2 id="架构差异"&gt;架构差异&lt;/h2&gt;
&lt;h3 id="docker守护进程模型"&gt;Docker：守护进程模型&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;用户 → docker CLI → dockerd（守护进程）→ containerd → runc → 容器
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Docker 的核心问题是&lt;strong&gt;所有操作都经过一个 root 权限的常驻守护进程（dockerd）&lt;/strong&gt;。这意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;dockerd 挂了，所有容器的管理能力就没了&lt;/li&gt;
&lt;li&gt;dockerd 本身是 root 权限运行，是一个安全风险面&lt;/li&gt;
&lt;li&gt;日志、网络等资源都受 dockerd 控制，难以用 systemd 等标准工具管理&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="podman无守护进程模型"&gt;Podman：无守护进程模型&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;用户 → podman CLI → 直接 fork → conmon → runc → 容器
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Podman 没有后台守护进程。每次运行容器时，Podman 直接 fork 出一个子进程，通过 conmon 作为容器的监控进程。这意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;没有单点故障&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可以用 systemd 管理容器&lt;/strong&gt;（配合 &lt;code&gt;podman generate systemd&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;天然支持 rootless&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rootless-容器的实际意义"&gt;rootless 容器的实际意义&lt;/h2&gt;
&lt;p&gt;Docker 也有 rootless 模式（Docker 19.03+ 引入），但是通过用户态模拟实现的，存在一些限制。Podman 的 rootless 模式从一开始就是核心设计目标，实现得更加成熟。&lt;/p&gt;</description></item></channel></rss>