Docker / Podman / Containerd 客观对比
| 维度 | Docker | Podman | Containerd |
|---|---|---|---|
| 架构 | C/S 架构,dockerd 守护进程 | 无守护进程,fork/exec 模型 | 嵌入式运行时,无独立 CLI |
| CLI 兼容性 | 原生 docker 命令 | 兼容 docker 命令(alias docker=podman) | ctr/nerdctl(nerdctl 兼容 docker) |
| 守护进程 | 需要 dockerd 运行 | 不需要守护进程 | 作为库嵌入容器平台 |
| Rootless | 支持(需配置) | 原生支持(默认 rootless) | 支持(需配置) |
| 镜像管理 | docker pull / push | podman pull / push | ctr / nerdctl pull |
| Compose 支持 | docker compose(内置) | podman-compose(外部工具) | nerdctl compose |
| Kubernetes 集成 | 需配置(已弃用 dockershim) | podman generate kube | 原生 CRI 接口 |
| 社区生态 | 最成熟,文档最全 | Red Hat 主导,RHEL 默认 | K8s 默认运行时 |
生态最成熟,文档最全,Compose 集成最好。本地开发、CI/CD、学习容器技术的最佳选择。
无需 root 权限运行容器,适合安全要求高的生产环境。RHEL/CentOS 默认容器工具。
作为 K8s 的 CRI 运行时,轻量高效。nerdctl 提供了 docker 兼容的 CLI 体验。
| Docker | Podman | nerdctl |
|---|---|---|
| docker run -d nginx | podman run -d nginx | nerdctl run -d nginx |
| docker ps | podman ps | nerdctl ps |
| docker build -t app . | podman build -t app . | nerdctl build -t app . |
| docker pull nginx:alpine | podman pull nginx:alpine | nerdctl pull nginx:alpine |
| docker compose up -d | podman-compose up -d | nerdctl compose up -d |
| docker images | podman images | nerdctl images |
| docker exec -it app sh | podman exec -it app sh | nerdctl exec -it app sh |
| docker logs app | podman logs app | nerdctl logs app |