Docker and Podman
May 22, 2025
As I learn more about Linux and running containers, I like to learn how containers work and how to run them with different technologies.
In my homelab I am running Podman more often and experimenting with running my containers with systemd and not as root. This is giving me more experience with Linux and containers.
I am also naming my files Containerfile
and not Dockerfile
. This helps me think more openly and not to a specific technology.
Docker has long been a popular name when people talk about container tech. Many people refer to containers themselves as “Docker containers.” But as the container ecosystem has matured, new tools have emerged Podman being one of the most notable.
Docker and Podman serve similar purposes, they differ significantly in design philosophy, use cases, and the communities that support them. The core differences are Docker is a commercial product and ecosystem, while Podman is an open-source project with unique features like rootless operation and tight systemd integration.
Docker
When people think of containers, they usually think of Docker. That’s not by accident. Docker, Inc. didn’t invent containers, but it popularized container technology with a user-friendly CLI, a vibrant image ecosystem (Docker Hub), and a seamless developer experience.
Docker is not just a tool; it’s a company and a product suite. Common tools include Docker CLI, Docker Compose, Docker Hub (image registry), Docker Desktop (a GUI for macOS/Windows users).
Docker uses a client-server architecture where the CLI talks to a long-running daemon (dockerd
) that manages containers, images, and networks.
While powerful and feature-rich, this architecture requires elevated privileges (root access), which raises some concerns in terms of security—especially on multi-user systems.
Podman
Podman is developed and maintained by Red Hat and part of the libpod project, Podman is a fully open-source container engine designed to address some of the architectural concerns found in Docker.
Here are Podman’s defining features:
Daemonless Architecture
Podman runs containers without a central daemon. Each command (e.g., podman run
, podman build
) directly interacts with container processes. This makes Podman simpler and more modular.
Rootless Containers
One of Podman’s standout features is rootless mode the ability to run containers without requiring root privileges. This reduces the attack surface and enhances security, especially in shared environments.
Systemd Integration
Podman integrates seamlessly with systemd, the init system used by most Linux distributions. You can auto-generate systemd service files using:
This allows containers to operate like native services and this is ideal for production and server environments.
Docker-Compatible CLI
Podman offers a Docker-compatible CLI, which means most Docker commands work identically.
You can even alias Podman as Docker: alias docker=podman
Use Podman if you want rootless security, systemd integration, and a more modular, daemonless architecture.
Give Podman a try: podman.io
Podman documentation: podman.io/docs
Final Thoughts
This is my opinion and interpretation of some of the differences in Docker and Podman. Both of these technologies have many settings and options for running containers.