EL 8: Podman replaces Docker
EL 8 made a decision with long reach: the official repositories stopped shipping Docker, and the container toolchain became the Podman / Buildah / Skopeo trio. The “daemonless, rootless-first” container style of today’s EL ecosystem was set in this release.
What changed
Section titled “What changed”Docker’s architecture is a long-running root daemon (dockerd) plus a CLI client; every container is a child of dockerd, so a daemon failure drags all containers with it, and the daemon’s root privileges make a large attack surface.
Red Hat’s answer was to rewrite the toolchain:
- Podman: no daemon — the CLI launches containers directly through an OCI runtime (runc/crun), and containers can be children of the calling user;
- Buildah: focused on image builds (with or without a Dockerfile, command by command);
- Skopeo: focused on inspecting, copying, and signing images across registries.
The three share one image store and the OCI standards, staying compatible with the Docker ecosystem (image format, Docker Hub, Compose files).
EL 7 vs EL 8
Section titled “EL 7 vs EL 8”| Item | EL 7 | EL 8 |
|---|---|---|
| Official container engine | Docker (rhel channel) | Podman |
| Daemon | dockerd (root, resident) | none |
| Rootless containers | unsupported / experimental | first-class |
| Image builds | docker build | podman build / buildah |
| systemd integration | via docker.service | containers as plain units (Quadlet) |
What it means for you
Section titled “What it means for you”- Command habits: the Podman CLI is highly compatible with Docker;
alias docker=podmancovers most daily operations. Differences concentrate in daemon-semantics commands (such asdocker eventsor the remote API). - Rootless: ordinary users can run containers without joining the docker group (whose membership is roughly equivalent to root); CI and multi-tenant setups get meaningfully safer.
- systemd integration: the EL 8 era used
podman generate systemd; from EL 10 on, declarative Quadlet units are recommended. - Compose:
podman-composeand Podman’s native compose support work, but behavioral details differ from docker compose; for production orchestration prefer systemd/Quadlet or a Kubernetes-side solution.
Checking and migrating
Section titled “Checking and migrating”sudo dnf install podman buildah skopeopodman --versionpodman info --format '{{.Host.Security.Rootless}}'- Inventory existing docker commands and scripts, replacing them according to CLI compatibility;
- Images and data: podman and docker share the OCI image format but not the local store — re-pull or use
skopeo copy; - Move orchestration to systemd units / Quadlet.
Further reading
Section titled “Further reading”- Podman basics — everyday operations and rootless practice
- Podman vs Docker — full architecture and command comparison
- Quadlet — containers as systemd services
- EL 9: cgroup v2 by default — completing rootless limit capabilities