What is the difference between Docker and Podman?
Why Interviewers Ask This
Candidates at the intermediate level are expected to not only know this concept but explain the trade-offs involved. Interviewers use this question to see if you can reason about design decisions, not just recall facts.
Answer
Podman is a daemonless, rootless container tool developed by Red Hat as an alternative to Docker. Key differences: (1) Architecture: Docker requires a running daemon (dockerd) that all commands talk to. Podman is daemonless — each podman run directly creates a container process without a central daemon. No single point of failure; no daemon to manage; (2) Rootless containers: Podman can run containers without root privileges by default, using user namespaces. Docker requires root or membership in the docker group (which effectively gives root). Rootless Podman is more secure; (3) Compatibility: Podman is largely CLI-compatible with Docker — most Docker commands work with alias docker=podman; supports Docker Compose via podman-compose; (4) Pods: Podman natively supports the concept of pods (groups of containers sharing network/storage namespace) — closer to Kubernetes; (5) Systemd integration: Podman generates systemd unit files for containers; (6) Image format: both use OCI-compatible images; (7) Kubernetes: podman generate kube generates Kubernetes YAML from running pods. Podman is the default container tool in RHEL/Fedora. Docker is still dominant in general use and developer tooling. The choice often depends on your environment and team familiarity.
Pro Tip
This topic has Docker-specific nuances that differ from general programming. Highlighting those nuances in your answer shows expertise rather than generic knowledge.