Quando inizi a studiare o usare i container prima o poi arriva la domanda su quale sistema operativo conviene installare Docker Engine? E allo stesso tempo qual è il sistema operativo più adatto per Podman?
È possibile installare Docker su Fedora e Podman su Debian. Su Fedora, Docker può richiedere più tuning e può generare confusione perché Podman è il percorso naturale mentre su Debian, Podman funziona ma non è l’ambiente di riferimento.
Per questo motivo una scelta tecnica è separare i contesti:- Docker Engine: ambiente Debian/Ubuntu
- Podman: ambiente Red Hat
Docker Engine: perché Debian è la scelta migliore
Docker Engine è nato e si è diffuso principalmente in ambienti Debian-based.
Debian utilizza tipicamente AppArmor che tende ad essere più silenzioso per chi studia Docker: meno messaggi, meno casi particolari, meno tuning. Questo non significa meno sicurezza in assoluto ma un percorso spesso più lineare quando l’obiettivo è imparare Docker Engine e gli strumenti correlati.
Se il tuo obiettivo è imparare Docker Engine e docker-compose con la massima compatibilità con tutorial e guide Debian o Ubuntu è la scelta più comoda.
Docker Engine è lo stack che permette di usare Docker su un sistema Linux. Non è un singolo componente ma un insieme di elementi che lavorano insieme:- Docker CLI: interfaccia a riga di comando utilizzata dall’utente
- dockerd: daemon che riceve e coordina i comandi
- containerd: container runtime che gestisce il ciclo di vita dei container
- runc: runtime di basso livello che avvia il processo sul kernel
docker run nginx il flusso è il seguente:
- Docker CLI: riceve il comando dall’utente
- dockerd: interpreta e orchestra l’operazione
- containerd: gestisce il container
- runc: avvia il processo isolato sul kernel Linux
Docker Engine è ciò che viene installato normalmente su sistemi Linux mentre Docker Desktop include Docker Engine e ne semplifica l’uso in ambienti desktop.
Podman: perché Fedora è la scelta naturale
Podman è il runtime moderno nell’ecosistema Red Hat e su Fedora Podman è già presente.
Vantaggi principali su Fedora: Podman è nativo e integrato nel sistema, modello rootless e workflow coerenti con ambienti moderni, SELinux enforcing: più vicino agli scenari enterprise e OpenShift e allineamento con CRI-O/OpenShift/OKD
Fedora usa SELinux in modalità enforcing per default. È più rigido rispetto ad AppArmor ma è anche un enorme vantaggio se stai studiando ambienti come OpenShift: ti abitua a ragionare in modo corretto su permessi, policy e isolamento.
Se il tuo obiettivo è Podman, OpenShift Local (CRC), OKD e mondo Red Hat la distribuzione Linux Fedora è la scelta più sensata.
Podman è uno strumento per l’esecuzione dei container che a differenza di Docker non utilizza un daemon centrale. Ogni comando Podman avvia direttamente i processi necessari senza un servizio sempre in esecuzione:- Podman CLI: interfaccia a riga di comando usata dall’utente
- conmon: monitor dei container
- runc o crun: runtime di basso livello che avvia il processo
podman run nginx il flusso è il seguente:
- Podman CLI: riceve il comando dall’utente
- Podman: prepara l’ambiente del container
- runtime runc o crun: avvia il processo isolato sul kernel Linux
Non essendoci un daemon centrale ogni container è un normale processo del sistema. Podman è progettato per sistemi Linux supporta nativamente l’esecuzione rootless ed è fortemente integrato con SELinux risultando particolarmente adatto ad ambienti enterprise e al mondo Red Hat.


