Podman 与 containerd 的差异与选择

结论先行

Podman 是面向开发者和运维的容器引擎,无守护进程、默认 rootless,提供 Docker 兼容 CLI;containerd 是底层容器运行时,负责镜像、容器生命周期和 CRI,是 Kubernetes 节点的核心组件。它们不在同一层:本地开发选 Podman,节点运行时选 containerd。

核心差异

维度 Podman containerd
定位 容器引擎/CLI 容器运行时
守护进程 无(fork/exec) 有 containerd 服务
rootless 默认支持 取决于配置
CLI podman,兼容 Docker ctr/crictl/nerdctl
Kubernetes 可生成/运行 Pod YAML CRI 运行时
镜像构建 Buildah/podman build 不负责构建
典型场景 本地开发、单机、rootless K8s 节点、容器运行时

怎么选

注意

podman run --rm -it alpine sh
crictl ps
ctr -n k8s.io containers list

相关命令