Podman and Docker compared
In short: Podman and Docker operate containers almost identically. The key difference: Podman needs no permanently running service with root rights and runs without administrator rights by default (rootless).
In more detail: The commands are largely compatible: podman run instead of docker run. Many use alias docker=podman.
In detail
| Feature | Docker | Podman |
|---|---|---|
| Background service | yes (daemon dockerd) | no (daemonless) |
| Rootless | possible | default |
| Compose | docker compose | podman compose / podman-compose, Quadlets |
| Pods | no | yes (like Kubernetes) |
| systemd | via services | Quadlet files, podman generate systemd |
| Adoption | very high | default on Fedora/RHEL |
- Example:
podman run -d -p 8080:80 docker.io/library/nginx. - Images: both use OCI images, registries: Docker Hub, GitHub Container Registry, Quay.
- Containerfile/Dockerfile: same format.
- Security: rootless operation limits the damage of an escape.
- Development: Docker Desktop (Windows/Mac), Podman Desktop, Rancher Desktop, Distrobox/Toolbox for development environments.
See also: Containers on Linux: namespaces and cgroups, Docker