Un container engine senza daemon
Docker è costruito attorno a un daemon privilegiato (dockerd) che gestisce tutte le operazioni. Questa architettura ha due problemi percepiti:
- Single point of failure — se il daemon crasha, tutti i container cadono
- Privilege model — il daemon gira come root; chiunque può parlare al socket Docker ha privilegi di root
Podman (dal 2018) risponde con architettura daemonless: ogni comando podman è un processo indipendente che usa runc/crun direttamente, senza intermediari persistenti. Sviluppato da Red Hat con licenza Apache 2.0, al 14 gennaio 2019 Podman raggiunge versione 1.0 stable.
CLI Docker-compatibile
Podman imita l’API CLI Docker: podman run, podman build, podman pull, podman push funzionano come i corrispettivi Docker. L’alias alias docker=podman fa funzionare molti script esistenti senza modifiche.
Non è identità completa: Podman non supporta docker-compose nativamente (ma ha podman-compose, third-party, e più tardi podman play kube per YAML K8s-stile).
Rootless
Podman supporta rootless mode nativamente: un utente non-root può eseguire container senza sudo. Usa user namespaces e subuid/subgid per mappare IDs. Vantaggi:
- Superficie di attacco ridotta
- Multi-tenancy più semplice
- Compatibilità con ambienti HPC (dove gli utenti non sono root)
Docker è atteso aggiungere rootless support in una versione successiva, in parte spinto da Podman.
Pods
Podman introduce il concetto di pod — gruppo di container che condividono network namespace, analogamente al pod Kubernetes. Il comando podman pod create crea un pod, poi si aggiungono container con podman run --pod <pod-name>. Consente di prototipare localmente configurazioni K8s-like.
Buildah e Skopeo
Podman fa parte di un ecosistema Red Hat:
- Buildah — build di immagini OCI senza daemon, script-friendly, più flessibile di
docker build - Skopeo — inspezione, copia, firma di immagini OCI tra registry senza pull locale
- CRI-O — runtime K8s-native (dello stesso team, coperto altrove)
Insieme formano il “container-tools” stack Red Hat, complementare a Docker ma con architettura diversa.
Adozione
- Red Hat Enterprise Linux 8 (in rilascio nel 2019) avrà Podman come default al posto di Docker
- Fedora — Podman come default
- OpenShift 4 — buildah + CRI-O come building/running stack
Nel contesto italiano
Le aziende italiane RHEL-based adotteranno Podman automaticamente con l’upgrade a RHEL 8. L’adozione di OpenShift nella PA porterà Podman nei relativi scenari di container management.
Riferimenti: Podman 1.0 (14 gennaio 2019). Red Hat. Licenza Apache 2.0. Componenti ecosistema: Buildah (build immagini), Skopeo (image management), CRI-O (runtime K8s). Rootless mode. Docker CLI compatibility.