ScriptsApr 12, 2026·2 min read

Podman — Daemonless Container Engine for OCI Containers

Podman is a daemonless, open-source tool for developing, managing, and running OCI containers and pods. Drop-in replacement for Docker CLI without requiring a root daemon. Used by Red Hat, Fedora, and increasingly adopted in enterprise environments.

TL;DR
Podman runs OCI containers without a root daemon, offering a drop-in Docker CLI replacement with rootless security by default.
§01

What it is

Podman is a daemonless container engine for developing, managing, and running OCI-compliant containers and pods. Unlike Docker, Podman does not require a background daemon process running as root. Each container runs as a child process of the Podman command, which improves security and simplifies process management.

Podman targets developers and sysadmins who want Docker-compatible container tooling with better security defaults. It is the default container tool on Red Hat Enterprise Linux, Fedora, and CentOS Stream.

§02

How it saves time or tokens

Podman is a drop-in replacement for the Docker CLI. Most docker commands work by simply replacing docker with podman. Existing Dockerfiles, docker-compose files (via podman-compose), and CI scripts require minimal changes. You get rootless containers by default without modifying your workflow.

No daemon means no daemon crashes. If Docker's daemon dies, all running containers stop. With Podman, containers are independent processes that survive Podman restarts.

§03

How to use

  1. Install Podman:
# macOS
brew install podman
podman machine init
podman machine start

# Fedora/RHEL
sudo dnf install podman

# Ubuntu/Debian
sudo apt install podman
  1. Run containers exactly like Docker:
podman run -d --name web -p 8080:80 nginx
podman ps
podman logs web
  1. Build images from Dockerfiles:
podman build -t myapp:latest .
podman push myapp:latest registry.example.com/myapp:latest
§04

Example

Running a pod (group of containers sharing a network namespace):

# Create a pod
podman pod create --name my-stack -p 8080:80 -p 5432:5432

# Add containers to the pod
podman run -d --pod my-stack --name db postgres:16
podman run -d --pod my-stack --name app nginx

# Containers share localhost
podman exec app curl localhost:5432

Pods mirror Kubernetes pod semantics, making local development closer to production.

§05

Related on TokRepo

§06

Common pitfalls

  • Assuming docker-compose works natively. Use podman-compose or podman compose (with the compose plugin). Not all docker-compose features are supported identically.
  • Rootless networking limitations. Rootless containers cannot bind to ports below 1024 without extra configuration. Use sysctl net.ipv4.ip_unprivileged_port_start=80 or run with --network=slirp4netns.
  • Volume permission issues in rootless mode. UID mapping between host and container can cause permission denied errors. Use podman unshare chown to fix ownership.

Frequently Asked Questions

Can I use my existing Dockerfiles with Podman?+

Yes. Podman builds images from standard Dockerfiles and Containerfiles. The build command syntax is identical: 'podman build -t myimage .' works the same as 'docker build -t myimage .'

How does Podman handle docker-compose files?+

Podman supports compose files via podman-compose (a Python wrapper) or the built-in 'podman compose' subcommand (which uses docker-compose or compatible tools under the hood). Most compose files work without modification.

Is Podman more secure than Docker?+

Podman runs rootless by default, meaning containers do not require root privileges on the host. Docker requires a root daemon. Rootless containers reduce the blast radius of container escapes. Podman also supports SELinux and seccomp profiles.

Can Podman run Kubernetes pods locally?+

Yes. Podman supports the pod concept natively. You can create pods where multiple containers share a network namespace, similar to Kubernetes. Podman can also generate Kubernetes YAML from running pods with 'podman generate kube'.

Does Podman work on macOS and Windows?+

Yes. On macOS and Windows, Podman uses a lightweight Linux VM (podman machine) to run containers. The CLI experience is the same as on Linux. 'podman machine init' and 'podman machine start' set up the VM automatically.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets