Podman is a container engine for OCI images, containers and pods that runs without a daemon. There is no long-lived background service holding the containers: podman run forks a small supervisor called conmon, conmon starts the OCI runtime — crun or runc — and the container becomes an ordinary child process of the session that launched it. Removing the daemon removes the root-owned socket that effectively grants root to anyone who can reach it, and it removes the failure mode where restarting the engine disturbs every container on the host.
The second design decision is rootless operation. A rootless container runs inside a user namespace, where UID 0 inside the container maps to the invoking user's subordinate UID range declared in /etc/subuid and /etc/subgid. Images and layers live under the user's home directory on fuse-overlayfs or native rootless overlay, connectivity comes from pasta or slirp4netns rather than a root-owned bridge, and privileged ports and certain kernel capabilities are genuinely unavailable rather than merely discouraged. Knowing which of those limits are real and which are configuration is most of the distance between a working rootless deployment and a frustrated one.
Around that core Podman is deliberately unbundled. Buildah builds images, Skopeo copies, inspects and signs them across registries and transports, and CRI-O runs the same containers under Kubernetes. Pods are a first-class primitive rather than a metaphor: containers in a pod share a network namespace through an infra container, exactly as they do in Kubernetes, and podman kube generate and podman kube play move workloads between a laptop and cluster YAML. For long-lived services, Quadlet turns a declarative unit file into a generated systemd service, so containers are supervised by the same init system as everything else on the host.
Why this skill matters now
The container engine stopped being a free choice the moment security baselines caught up with it. A root-owned daemon socket is a privilege-escalation path that appears in every serious host hardening review, and CI systems that mount that socket into build jobs hand root to whatever the build executes. Podman's daemonless, rootless model removes the finding rather than documenting an exception for it.
Distribution decisions have pushed the same way. Red Hat Enterprise Linux and Fedora ship Podman, Buildah and Skopeo as the supported container toolchain, so any estate standardised on RHEL now needs engineers fluent in Podman rather than engineers who translate Docker commands and hope. The CLI compatibility makes the first day easy and the second week hard: the commands look identical, but user namespaces, SELinux labelling, rootless networking and systemd integration behave differently enough that surface familiarity produces confident mistakes.
There is also a growing class of workload that never reaches an orchestrator — edge nodes, appliances, single-tenant servers, build hosts — where systemd plus Quadlet is the whole platform. That is the gap Podman fills, and it is a skill organisations hire for specifically.