What Podman Does
- Docker-compatible CLI —
alias docker=podmanworks - Daemonless — no background service, each container is a fork/exec
- Rootless — run containers as non-root by default
- Pods — group containers that share network namespace (like K8s pods)
- Systemd integration — generate systemd units from containers
- K8s YAML — generate and play Kubernetes YAML
- Compose — podman-compose or docker-compose with podman socket
- Image building — via Buildah (integrated)
- Multi-arch — cross-platform image builds
- Podman Desktop — GUI for managing containers
Architecture
Forkexec model: podman run forks a conmon process that supervises the container runtime (crun or runc). No daemon = no single point of failure. Storage uses containers/storage (overlayfs). Networking uses CNI or netavark.
Self-Hosting
CLI tool.
Key Features
- Docker CLI compatibility
- Daemonless architecture
- Rootless containers
- Pod support (like K8s)
- Systemd unit generation
- K8s YAML import/export
- Buildah integration
- Podman Desktop GUI
- Remote API (REST)
- Multi-arch builds
Comparison
| Tool | Daemon | Rootless | Pods | CLI |
|---|---|---|---|---|
| Podman | No | Default | Yes | Docker-compatible |
| Docker | Yes (dockerd) | Optional | No | docker |
| nerdctl | No (containerd) | Yes | Yes | Docker-compatible |
| Lima | VM-based | Yes | No | Docker-compatible |
常见问题 FAQ
Q: 能完全替换 Docker 吗?
A: 日常使用可以。alias docker=podman 大部分命令通用。Docker Compose 通过 podman-compose 或 podman socket 兼容。少数边缘功能有差异。
Q: macOS 怎么用?
A: podman machine init && podman machine start 启动一个 Fedora CoreOS VM。体验和 Docker Desktop 类似但无需许可证费用。
Q: 生产环境用? A: Red Hat OpenShift 底层就是 CRI-O + Podman。RHEL、Fedora 默认用 Podman 替换 Docker。
来源与致谢 Sources
- Docs: https://docs.podman.io
- GitHub: https://github.com/containers/podman
- License: Apache 2.0