Installare Podman su Ubuntu 22.04
Podman è una scelta solida se vuoi gestire container senza dipendere dal demone centrale tipico di Docker. Su Ubuntu 22.04 l’installazione è lineare, ma conviene farla con un minimo di contesto: prima verifichi la base del sistema, poi installi i pacchetti, infine controlli che la rete, i namespace utente e l’esecuzione rootless siano corretti.
Su una macchina Linux recente, il punto non è solo installare il pacchetto: è capire se il sistema è pronto per eseguire container in modo affidabile. Questo vale soprattutto se stai lavorando su server di produzione, VPS o ambienti dove vuoi ridurre la superficie di attacco e limitare l’uso di privilegi elevati.
Requisiti minimi
Prima di iniziare, verifica di avere:
- Ubuntu 22.04 aggiornato
- Accesso sudo
- Connessione Internet per i repository
- Almeno qualche GB di spazio libero su disco
Controlla velocemente versione e stato generale:
lsb_release -a
uname -r
df -h
idSe il sistema è coerente, dovresti vedere Ubuntu 22.04, un kernel recente, spazio disco disponibile e il tuo utente con privilegi sudo se necessario.
Aggiornare il sistema prima dell’installazione
Prima di aggiungere nuovi pacchetti, conviene allineare gli indici e installare gli aggiornamenti già disponibili. È un passaggio semplice, ma evita problemi banali come dipendenze incoerenti o versioni vecchie di librerie di sistema.
sudo apt update
sudo apt upgrade -ySe vuoi ridurre il rischio di lasciare il sistema in uno stato intermedio, esegui prima un controllo dei pacchetti in attesa:
apt list --upgradableSe trovi molti aggiornamenti critici, valuta di completare il reboot prima di proseguire, soprattutto se il kernel è stato aggiornato. Dopo il riavvio, ripeti un controllo rapido con uname -r.
Installare Podman dai repository Ubuntu
Su Ubuntu 22.04 Podman è disponibile direttamente nei repository ufficiali. Per la maggior parte dei casi, questa è la strada più pulita: meno manutenzione, meno attriti con le dipendenze e aggiornamenti gestiti da APT.
sudo apt install -y podmanSe il pacchetto viene installato correttamente, puoi verificare la versione:
podman --versionAtteso: una risposta simile a podman version x.y.z. Se il comando non viene trovato, controlla che l’installazione sia andata a buon fine:
dpkg -l | grep podmanIn caso di errore di dipendenze, il primo controllo utile è il log di APT e lo stato dei pacchetti rotti:
sudo apt -f install
sudo dpkg --configure -aQuesti comandi non sono distruttivi: servono a completare configurazioni rimaste sospese o a sistemare dipendenze mancanti.
Verificare il funzionamento base
Una volta installato, fai un test con un’immagine minima. È il modo più rapido per capire se il motore container funziona, se la rete è operativa e se il runtime riesce a scaricare immagini dal registry.
podman run --rm docker.io/library/alpine:latest echo OKSe tutto è a posto, dovresti vedere OK come output. In caso contrario, i problemi più comuni sono connettività, DNS, policy di rete o permessi legati all’ambiente rootless.
Per un controllo più utile, prova anche un container interattivo e verifica che il filesystem sia montato correttamente:
podman run --rm -it docker.io/library/alpine:latest shAll’interno del container puoi eseguire:
cat /etc/os-release
ip a
exitSe il container parte e risponde, il runtime di base è operativo.
Configurare l’uso rootless
Uno dei vantaggi principali di Podman è l’esecuzione rootless, cioè senza dover usare l’utente root per avviare i container. Su Ubuntu 22.04 questa modalità è spesso già disponibile, ma è bene verificare che il sistema supporti correttamente i namespace utente e la mappatura degli UID.
Controlla innanzitutto che il tuo utente abbia una mappatura valida:
cat /etc/subuid
cat /etc/subgidSe il tuo utente non compare, la modalità rootless può avere limitazioni. In molti casi puoi aggiungere una coppia di intervalli dedicati con:
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USERDopo la modifica, esci e rientra nella sessione oppure avvia una nuova shell, poi verifica di nuovo i file /etc/subuid e /etc/subgid.
Puoi confermare che Podman stia lavorando in rootless con:
podman info --debug | grep -i rootlessAtteso: un’indicazione che rootless è attivo. Se il sistema non supporta bene i namespace utente, il problema è spesso nel kernel, nelle policy di sicurezza o nella configurazione degli intervalli UID/GID.
Abilitare il socket API e i servizi utente
Podman può esporre un socket compatibile con alcune integrazioni e con flussi di automazione. Su sistemi dove vuoi usare servizi utente o avvio automatico, conviene verificare il supporto di systemd in modalità user.
Per abilitare il socket dell’utente corrente:
systemctl --user enable --now podman.socketVerifica lo stato:
systemctl --user status podman.socketSe il servizio risulta attivo, il socket è pronto. In caso di errore, controlla che la sessione utente sia persistente e che il login non venga terminato subito dopo il logout. Su server senza sessione grafica, può essere utile abilitare il lingering dell’utente:
sudo loginctl enable-linger $USERQuesto permette ai servizi user di restare disponibili anche senza una sessione interattiva aperta.
Usare il primo container in modo sicuro
Dopo l’installazione, il primo obiettivo non è fare esperimenti complessi, ma verificare un flusso minimale e ripetibile. Un buon test è avviare un container che esegua un comando semplice e poi si chiuda da solo.
podman run --rm docker.io/library/alpine:latest sh -c 'echo container pronto'Se vuoi vedere il comportamento dei container in background, prova un web server minimale:
podman run -d --name webtest -p 8080:80 docker.io/library/nginx:alpinePoi verifica dal sistema host:
curl -I http://127.0.0.1:8080Atteso: una risposta HTTP valida, ad esempio 200 OK o un redirect previsto dal container. Quando hai finito, rimuovi il test:
podman stop webtest
podman rm webtestQuesto approccio ti fa verificare sia il runtime sia il port mapping senza introdurre configurazioni permanenti.
Gestire immagini, container e pulizia
Dopo i primi test, conviene conoscere i comandi base per non accumulare artefatti inutili. Podman mantiene immagini e container locali, quindi una pulizia periodica aiuta a evitare consumo disco inutile.
Per vedere le immagini disponibili:
podman imagesPer vedere i container, anche quelli fermi:
podman ps -aPer rimuovere un container fermo:
podman rm NOME_CONTAINERPer cancellare un’immagine non più necessaria:
podman rmi NOME_IMMAGINESe vuoi ripulire risorse non usate con attenzione, puoi usare:
podman system df
podman system prunePrima di eseguire podman system prune, verifica cosa verrà rimosso, perché può eliminare risorse non più referenziate ma ancora utili in fase di test.
Risoluzione dei problemi più comuni
Se Podman si installa ma non riesce a scaricare immagini, il primo sospetto è la rete o il DNS. Verifica con:
curl -I https://registry-1.docker.io
resolvectl statusSe il container parte ma non risolve nomi, il problema è spesso nel resolver del sistema o nella configurazione della rete del container. Se invece il comando restituisce errori di permesso, controlla i namespace utente e i file /etc/subuid e /etc/subgid.
Se vedi errori legati a storage o overlay, controlla lo spazio libero e lo stato del filesystem:
df -h
podman info | grep -i storageSe il disco è quasi pieno, libera spazio prima di riprovare. Su sistemi con storage compresso o partizioni piccole, i container possono fallire anche se l’installazione è corretta.
Se il problema riguarda un’immagine corrotta o un pull interrotto, elimina l’immagine locale e riprova:
podman rmi docker.io/library/alpine:latest
podman pull docker.io/library/alpine:latestIn caso di problemi persistenti, i log utili sono quelli del comando stesso e quelli di sistema se stai usando servizi user o integrazioni systemd.
Conclusione operativa
A questo punto Podman è installato, verificato e pronto per essere usato su Ubuntu 22.04 in modalità base e rootless. Il flusso corretto è sempre lo stesso: aggiorna il sistema, installa il pacchetto, prova un container minimale, verifica rete e permessi, poi passa a configurazioni più avanzate solo se servono davvero.
Se il tuo obiettivo è usarlo su una macchina di produzione, il vantaggio principale è la gestione senza demone centrale e con un profilo di sicurezza più pulito. Da qui puoi evolvere verso immagini personalizzate, pod, volumi e integrazione con systemd, ma solo dopo aver confermato che il setup di base è stabile.
Assunzione: i comandi mostrati si riferiscono a Ubuntu 22.04 standard, con repository ufficiali attivi e accesso sudo disponibile.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.