Podman
Daemonless, rootless OCI container engine with an optional desktop GUI. Fully open source, but a harder first-time experience than Docker Desktop.
appcontainerspodmanossinfrastructure
Podman
Podman is a daemonless, Open Container Initiative (OCI) container engine. It runs containers without a long-lived root daemon, and it is designed to run rootless by default. There are two things people mean by "Podman":
- Podman — the CLI engine (https://podman.io/).
- Podman Desktop — a GUI on top of it (https://podman-desktop.io/), which is the closest thing to a drop-in Docker Desktop replacement.
Owners Club position: fully OSS and technically excellent, but not the recommended first runtime for beginners. Use it when licence cleanliness or rootless-by-default matters more than the smoothest possible first install.
At a glance
| Field | Value |
|---|---|
| Home page | https://podman.io/ (GUI: https://podman-desktop.io/) |
| Repository | https://github.com/podman-container-tools/podman |
| GUI repository | https://github.com/podman-desktop/podman-desktop |
| OSS? | Yes — engine and desktop GUI |
| License | Apache-2.0 (both projects) |
| Platforms | Linux (native), macOS, Windows (via a managed Linux VM / podman machine) |
| Daemon | None — containers are child processes of the CLI |
| Rootless | Yes, the default posture |
| Docker compatibility | podman CLI is largely Docker-compatible; Docker Compose works via podman compose |
Why it is on our list
- No proprietary desktop licence. This is the concrete reason to prefer it over Docker Desktop in a company that exceeds Docker's free-tier thresholds.
- Rootless by default. Containers do not run as root on the host, which is a real security improvement rather than a checkbox.
- It speaks Docker. Images, Dockerfiles, and most commands carry over, so it is not a rewrite — it is a substitution.
Why it is not our beginner recommendation
- On macOS and Windows you run containers inside a managed VM (
podman machine). You must create and start that machine before anything works — an extra concept Docker Desktop hides. - Docker socket compatibility is an explicit opt-in. Tools that hardcode
/var/run/docker.sock(including some agent and dev-container setups) need that socket enabled and pointed at Podman, and when it fails it fails confusingly. - Small differences in networking, volume permissions, and Compose behaviour produce errors that beginners cannot distinguish from "containers are broken".
That trade-off is summarised in Choosing a container runtime.
Install and first run
Linux — install from your distribution's package manager; Podman is packaged nearly everywhere.
macOS / Windows — install Podman Desktop from https://podman-desktop.io/, then create and start its machine before running a container.
Sanity check:
podman run --rm hello-world
Tutorials index: https://docs.podman.io/en/latest/Tutorials.html.
Configuration worth knowing
podman machineis the macOS/Windows lifecycle: initialise, start, stop, and inspect the Linux VM that actually runs your containers. If a container "cannot start", check the machine first.- Docker socket compatibility. Podman can expose a Docker-compatible socket so Docker-expecting tools connect. Enable it deliberately; it is what makes dev containers and agent frameworks work.
podman composeprovides the Compose workflow for multi-container setups.
Common pitfalls
- Forgetting to start the machine on macOS/Windows, then reading the error as a Podman bug.
- Assuming a Docker socket exists. It does not until you enable it, and bind-mounting a missing socket into a container produces a very unhelpful failure.
- Host service addresses differ. Inside Podman Desktop containers a host service is reached at
host.containers.internal, not Docker'shost.docker.internal. Both are often mapped when a devcontainer is written carefully — but not by accident. - Rootless volume permissions. Bind-mounted host directories owned by your user can look inaccessible inside the container because of UID mapping. This is a feature, not a bug; use user-namespace-aware mounts or adjust ownership intentionally.
- Running Podman and Docker Desktop simultaneously and then wondering which runtime answered.
Tips and tricks
- If you are learning containers for the first time, use Docker Desktop; if you are replacing it for licensing reasons, move to Podman Desktop and budget an evening for the socket details.
- Keep the machine's disk size generous: model weights are large and resizing later is annoying.
- Because Podman is daemonless,
podmancommands behave more like ordinary processes — which makes debugging on Linux noticeably more pleasant than fighting a daemon.
Videos
Verified via YouTube oEmbed on 2026-10-28.
- How to Get Started with Podman Desktop — Red Hat.
- Containers and Podman for beginners | Into the Terminal 154 — Red Hat Enterprise Linux.
- Podman Tutorial Zero to Hero | Full 1 Hour Course — Amadeus for Developers.
Related
- Docker Desktop — the easier default, with licence caveats.
- Choosing a container runtime — the decision guide.
- Agent containment — why the runtime matters for agents.
Verification note: licences and repositories were read from the GitHub API on 2026-10-28; platform and rootless behaviour from the official Podman and Podman Desktop documentation.