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 aggiungerà rootless support più tardi (Docker 20.10, 2020), 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 (2019) — Podman come default, Docker rimosso
- Fedora 31+ — Podman come default
- OpenShift 4 — buildah + CRI-O come building/running stack
- GitLab CI runners — opzione Podman
Nel contesto italiano
Adozione italiana:
- Aziende RHEL-based — automatica con upgrade a RHEL 8+
- PA — OpenShift adoption porta Podman
- Development locale — alternative a Docker Desktop per scenari enterprise
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. RHEL 8, Fedora 31+ default.
