Vuoi avviare un servizio di test, uno strumento web o un’immagine Linux senza aggiungere il tuo account al gruppo docker. Podman può eseguire contenitori da una sessione utente, con memorizzazione e processi legati al tuo UID. Questo è utile per iniziare in modo pulito, ma non esime dal controllare l’immagine, i volumi o le porte esposte.

Installare Podman e verificare la modalità rootless
Su Debian o Ubuntu, installa il pacchetto dai repository della tua distribuzione. Anche Fedora lo include nei suoi repository standard.
sudo apt update
sudo apt install podman
podman --version
podman info --debug
Esegui quindi podman info --debug con il tuo account abituale, senza sudo. L’output deve indicare un contesto rootless. Podman utilizza quindi il tuo spazio utente e le gamme definite in /etc/subuid e /etc/subgid per mappare gli identificatori del contenitore.
Un messaggio su newuidmap, subuid o subgid segnala una preparazione incompleta. Non aggirare l’errore passando direttamente a root. Controlla prima il tuo input con il comando seguente, quindi applica il metodo documentato dalla tua distribuzione se manca.
grep "^$USER:" /etc/subuid /etc/subgid
Avviare un primo contenitore senza privilegi
Inizia con un’immagine minuscola e un comando che si ferma da solo. In questo modo verifichi il download dell’immagine, la memorizzazione locale e l’esecuzione senza lasciare un servizio aperto sulla rete.
podman run --rm docker.io/library/alpine:latest echo "Podman funziona"
L’opzione --rm elimina il contenitore al termine. L’immagine rimane in cache. Per vedere le immagini e i contenitori, inclusi quelli fermi, usa:
podman images
podman ps -a
Per un servizio che deve rimanere disponibile, dagli un nome esplicito. Questo esempio avvia nginx in background e pubblica la porta 8080 solo sulla macchina locale.
podman run -d --name web-test
-p 127.0.0.1:8080:80
docker.io/library/nginx:alpine
podman ps
curl -I http://127.0.0.1:8080
Il prefisso 127.0.0.1: evita di esporre questo test su tutte le interfacce di rete. Se scrivi solo -p 8080:80, controlla il risultato con podman port web-test e con ss -ltnp. Su un server, apri una porta pubblica solo dopo aver scelto il firewall e l’indirizzo di ascolto.
Leggere lo stato, i log e fermare il servizio correttamente
Un contenitore avviato non prova che l’applicazione risponda. Controlla il suo stato, gli ultimi log e il mapping di rete prima di modificare l’immagine o la configurazione.
podman inspect web-test --format '{{.State.Status}}'
podman logs --tail 50 web-test
podman port web-test
podman stop web-test
podman rm web-test
podman inspect mostra i parametri realmente applicati. È più affidabile che rileggere un comando copiato nella tua cronologia. Tieni anche il nome dell’immagine e il suo tag nella tua documentazione. Un tag latest può puntare a una versione diversa al prossimo download. Per un uso duraturo, scegli una versione specifica e pianifica il suo aggiornamento.
I limiti del rootless e i tranelli da evitare
- Un contenitore rootless limita l’impatto sull’host, ma un’immagine non affidabile, un segreto iniettato come variabile o un volume in scrittura rimangono dei rischi.
- Evita
--privileged,--network hoste i montaggi di directory sensibili. Queste opzioni riducono fortemente l’isolamento. - Monitora i dati in sola lettura quando l’applicazione non ha bisogno di modificarli, ad esempio
-v "$HOME/site:/usr/share/nginx/html:ro". - Le porte inferiori a 1024, alcuni dispositivi e alcune restrizioni di rete richiedono una configurazione aggiuntiva. Non aggiungere privilegi per riflesso.
- Podman accetta gran parte della sintassi Docker, ma i servizi, le reti e la memorizzazione non si comportano sempre allo stesso modo. Testa un progetto in una cartella isolata prima di una migrazione.
Il gruppo docker spesso fornisce un accesso molto ampio al demone Docker. Podman rootless evita questa abitudine per i contenitori avviati dal tuo account. Per confrontare l’installazione di un motore Docker con questa scelta di diritti, puoi anche rileggere la nostra guida su Docker su Debian.
La documentazione ufficiale di Podman dettaglia il funzionamento rootless, e il manuale di podman run elenca le opzioni di rete, volumi e identificatori. Inizia con un’immagine semplice, una porta locale e un volume in sola lettura. Saprai rapidamente se Podman è adatto al tuo utilizzo prima di spostare un servizio utile.