Podman 完全指南
Podman 完全指南
无守护进程、无 root、无妥协 — 下一代 Linux 容器引擎完全指南
为什么写这份指南?
Podman(Pod Manager)是一个兼容 OCI(Open Container Initiative)标准的容器引擎,由 Red Hat 主导开发。它在架构设计上与 Docker 有根本性差异:
| 维度 | Docker | Podman |
|---|---|---|
| 架构 | 客户端-守护进程(C/S) | 无守护进程(Fork/Exec) |
| 默认运行模式 | root | Rootless(非 root) |
| systemd 集成 | 需额外配置 | 原生支持 |
| Pod 概念 | 无(需 Docker Compose) | 原生支持 Pod |
| OCI 兼容 | ✅ | ✅ |
| Docker CLI 兼容 | — | 几乎 100% 兼容 |
| 安全攻击面 | 守护进程为单点风险 | 每个容器独立进程 |
本指南共 14 章,覆盖从入门到生产环境的全部知识。无论你是从 Docker 迁移还是直接上手 Podman,都能找到所需内容。
目录导航
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 01 | Podman 简介 | 容器技术演进、Podman vs Docker 对比、Rootless 理念、OCI 标准 |
| 02 | 安装与配置 | RHEL/Fedora、Ubuntu/Debian、macOS、Windows 多平台安装 |
| 03 | 基础操作 | 容器生命周期管理、镜像拉取/构建/推送、常用命令速查 |
| 04 | Pod 管理 | Pod 创建/管理、多容器编排、Kubernetes YAML 兼容 |
| 05 | Rootless 模式 | 非 root 运行原理、用户命名空间、uidmap 配置、限制与最佳实践 |
| 06 | Systemd 集成 | podman generate systemd、Quadlet、服务自启动、健康检查 |
| 07 | 容器网络 | CNI/Netavark、端口映射、自定义网络、DNS 解析、流量控制 |
| 08 | 存储管理 | Named Volume、Bind Mount、SELinux 标签、存储驱动选型 |
| 09 | Podman Compose | Docker Compose 兼容、多服务编排、开发环境搭建 |
| 10 | 密钥管理 | podman secrets、环境变量注入、外部密钥管理集成 |
| 11 | 安全加固 | SELinux、seccomp、用户命名空间、Capability 管理、镜像扫描 |
| 12 | 镜像仓库 | 私有 Registry 部署、镜像签名(Sigstore/cosign)、镜像分发策略 |
| 13 | Docker 迁移 | 命令映射表、兼容层配置、常见迁移陷阱、CI/CD 切换 |
| 14 | 生产最佳实践 | 镜像优化、CI/CD 集成、监控运维、安全合规、企业级部署方案 |
阅读建议
入门路线: 01 → 02 → 03 → 04
进阶路线: 05 → 06 → 07 → 08 → 09
生产路线: 10 → 11 → 12 → 14
迁移路线: 01 → 02 → 13 → 05 → 06 → 14
适合谁读?
- Docker 用户:平滑迁移到 Podman,获得更好的安全性和 systemd 集成
- 运维工程师:利用 Quadlet 实现容器服务的 systemd 管理
- DevOps 工程师:在 CI/CD 流水线中集成 Rootless 容器构建
- 安全工程师:了解容器安全加固的完整方案
- Kubernetes 用户:Podman 的 Pod 和 K8s YAML 兼容特性
环境说明
本指南中的示例默认基于:
- 操作系统:Fedora 41 / RHEL 9 / Ubuntu 24.04
- Podman 版本:5.x(大部分命令兼容 4.x)
- Shell:Bash 5+