2022 might be the year of DevOps alternatives, including cloud providers, CI/CD tools and even containers. Speaking of containers, Podman looks like a promising alternative to Docker. Let’s see how they differ from each other.
The Docker installation includes the Docker Daemon, the Docker API, and the Docker CLI. Docker Daemon is a process which creates and manages the Docker images, containers, networks and volumes. It becomes a single point of failure since this process owns all of the child processses (docker containers).
If you decide to install the Docker Desktop version (Mac or Windows), you might also get an option to enable local Kubernetes cluster feature.
Basically, Docker uses a client-server model and operates as a all-in-one solution for container orchestration.
On the other side, Podman is a daemon-less tool for developing, managing and running OCI-compatible (Docker is OCI-compatible as well) containers.
Podman directly interacts with image registries, containers and volume storages, whereas Docker do this through the Daemon, hence Podman doesn’t need a daemon (uses Systemd instead to support running containers in the background).
The containers are run under the user starting the containers, which brings up to the second point, Security.
By default Docker Daemon runs as a root user, which is so bad. It enables a privilege escalation. By any means, you could run Docker in a rootless mode and isolate containers with user namespaces, but it takes a while to configure it.
While Podman could be run as a root as well, running Podman as a nonprivileged user is a foundational feature, and it’s easier to setup.
Docker uses a native built-in command line tool to build images:
docker build .
Podman relies on third-party tools, for instance Buildah is the most popular choice.
Although Docker CE is free and open source, recently Docker comes up with a Subscription-based pricing plan, which mostly impacts medium and large enterprises.
Podman is free and open source.
Docker comes with a Docker Swarm container orchestrator.
Podman doesn’t support Docker Swarm. Added support for docker-compose though.
Official Docker documentation.
Official Podman documentation.
Which one is the right one for you?! For beginners, Docker is a no-brainer, but once you start going down into the container rabbit hole, Podman would be the next wise choice.