# Docker vs Podman

`Docker` è stato il pioniere nel settore della containerizzazione, guadagnandosi una notevole popolarità e un ampio supporto. D'altra parte, `Podman`, sviluppato da Red Hat, è preinstallato su tutte le distribuzioni Red Hat based.

## Architettura

Entrambi gli strumenti sono multipiattaforma, ma presentano differenze significative nella loro architettura. Docker utilizza un *demone central*e per gestire tutti i container in esecuzione. Questo demone, noto come `Docker daemon`, è responsabile dell'avvio, della gestione e dell'arresto dei container. Tuttavia, questa architettura introduce un *single point of failure*: se il Docker daemon dovesse andare in crash, tutti i container avviati ne risentirebbero.

Al contrario, Podman adotta un'architettura `daemonless`: ogni container avviato è un processo indipendente.

![docker-podman](asset/img/docker-podman.png)

## Sicurezza

In termini di sicurezza, Podman è nativamente `rootless`, il che significa che, per impostazione predefinita, i container vengono eseguiti con i privilegi dell'utente. Questo approccio riduce il rischio che un container compromesso possa accedere all'intero sistema, poiché non opera con privilegi elevati. Sebbene Docker richieda, per impostazione predefinita, l'esecuzione come utente root, è possibile configurarlo per funzionare in modalità rootless.

## Interoperabilità

Docker e Podman sono perfettamente *intercambiabili*. Entrambi supportano le stesse opzioni e possono utilizzare le stesse immagini.
