Guida a Podman
Podman (contrazione di POD manager) è uno strumento open source pensato per lo sviluppo, la gestione e l'esecuzione dei container. Sviluppato dagli ingegneri di Red Hat® con il contributo della community open source, Podman gestisce l'intero ambiente dei container tramite la libreria libpod. Viene utilizzato per sviluppare, gestire ed eseguire container e pod OCI su sistemi Linux.
Caratteristiche principali di Podman:
- Progettato come un motore di container senza demone.
- Completamente compatibile con la CLI e le immagini Docker.
- Sviluppato secondo gli standard dell'Open Container Initiative (OCI).
Vediamo i vantaggi dell'utilizzo di Podman:
- Nessun demone richiesto: ogni comando viene eseguito in modo indipendente; nessun servizio in background.
- Rootless by Design: esegui i container senza privilegi di root, migliorando la sicurezza.
- Compatibile con Docker: supporta immagini Dockerfile, docker-compose.yml e DockerHub.
- Supporto Pod: consente il raggruppamento di container utilizzando pod simili a Kubernetes.
- Facile integrazione del sistema: genera file di unità systemd per gestire i container come servizi.
- Pronto per lavorare: sviluppato da Red Hat, utilizzato in RHEL, CentOS, Fedora.
Panoramica dell'architettura di Podman
Podman segue un'architettura daemonless, il che significa:
Ogni comando Podman è un processo separato.
Non è necessario alcun servizio in background di lunga durata.
È possibile eseguire i container come utente personale (senza root), quindi con una maggiore sicurezza.
Utilizza Skopeo per il trasporto delle immagini dai registri docker.io e quay.io. Quindi utilizza senza problemi tutte le immagini Docker.
Funziona a stretto contatto con Buitdah per la creazione di immagini personalizzate.
Utilizza Crun che legge una specifica di runtime e configura il kernel Linux. Alla fine crea e avvia processi container.
Attraverso il terminale di Linux verranno dati tutti i comandi (Container Instance) a Podman per creare, avviare e gestire i container
Attraverso il terminale di Linux verranno dati tutti i comandi (Container Instance) a Podman per creare, avviare e gestire i pod. Un pod è un gruppo di uno o più containers che condividono lo stesso network namespace (indirizzo IP e porte) e lo stesso localhost.
Qui sotto potete vedere lo schema che illustra il funzionamento di Podman:
Perché dovrei usare Podman
Podman permette l’installazione e l’esecuzione di diverse distribuzioni Linux direttamente dal terminale. Podman è un modo per integrare il software containerizzato come se fosse un’app nativa. Anche se quel software appartiene a una distribuzione completamente diversa. Inoltre, permette di creare ambienti di sviluppo e di test senza richiedere i privilegi di root.
Podman è un ambiente basato su immagini OCI, utilizzate per creare contenitori che si integrano perfettamente con il resto del sistema operativo. Le immagini OCI (Open Container Initiative) sono un formato standard per la creazione e la distribuzione di container. OCI è un progetto open source che mira a stabilire uno standard aperto e comune per i container, consentendo la portabilità delle immagini tra diverse piattaforme e strumenti.
Quindi ulizzerete la vostra distribuzione linux abituale che vi permetterà di utilizzare un'altra distribuzione di Linux in un container creato con Podman.
Perché dovrei usare Podman:
possiamo utilizzare i contenitori creati da Podman per avere un ambiente in cui possono essere installati e utilizzati strumenti di sviluppo e librerie.
per poter installare e utilizzare un programma che non possiamo utilizzare con la distribuzione corrente di Linux
perché un container creato attraverso Podman, offre alcune caratteristiche pensate per aumentare il livello di sicurezza, creando un ambiente isolato dall'ambiente host che li ospita. In più una distribuzione di Linux che è avviata in podman ha un set di pacchetti minimalista che riduce la superficie di attacco e garantisce un ambiente desktop più sicuro.
Su quali distribuzioni posso usare Podman? praticamente su quasi tutte. Ma se intendete utilizzarlo per massimizzare la sicurezza l'ideale è utilizzarlo su una distribuzione di Fedora Atomic Desktops, in quanto la loro natura immutabile garantisce massimi livelli di sicurezza ed una riduzione della superficie di attacco grazie alla protezione da modifiche non autorizzate.
Installare Podman
A questa pagina troverete il progetto di Podman: Podman
Vediamo come installare Podman sulla distribuzione di linux che stiamo utilizzando:
Utilizzare Podman per avviare una distribuzione di linux con una GUI
Se volete avviare una distribuzione di Linux in ambito desktop la soluzione più semplice, soprattutto se siete dei neofili è utilizzare Distrobox. Distrobox è un wrapper di Docker e Podman estremamente semplice da usare. Non potrete configurare nel dettaglio i container ma vi permette di creali con estrema facilità e di avviare con la stessa facilità la distribuzione di Linux di vostra scelta in formato immagine OCI (Open Container Initiative).
Ciascun container creato con Distrobox risulta strettamente integrato con l’host, consentendo la condivisione della directory home dell’utente, l’accesso alle unità di memorizzazione esterne, l’utilizzo di dispositivi USB, delle applicazioni dotate di interfaccia grafica (X11/Wayland) e dell’hardware multimediale.
Qui vi metto a disposizione una guida per imparare ad utilizzarlo:
Utilizzare Podman in ambito server
Docker e podman generalmente servono per installare dei servizi che sono contenuti in un immagine già preconfigurata e isolata, così da non avere problemi di dipendenze e configurazioni da fare. Inoltre semplificano il deploy di tali servizi / applicazioni per l'utilizzatore. Quindi si utilizzeranno essenzialmente distribuzioni di Linux in ambito server, che non devono interagire con interfaccia grafica.
All'interno di un container è possibile avviare una distribuzione di Linux in formato immagine OCI (Open Container Initiative). Questa rappresenta una soluzione potente e versatile per eseguire una distribuzione di Linux in un ambiente isolato, mantenendo il sistema operativo principale pulito e stabile.
Lo scopo di questa guida su Podman è quella di fornire delle sintetiche nozioni di base e di fornire i comandi da digitare sul terminale di Linux per utilizzare Podman.
Il tutto verrà coredato da alcuni esempi pratici. Anzi i comandi illustrati da digitare sul terminale verrano mostrati nella forma di esempi pratici.
Ogni comando che viene illustrato in questa sintetica guida dopo averlo digitato sul terminale di Linux deve essere seguito dal tasto INVIO.
Quindi questa guida non è adatta a utenti neofili, ma ad utenti di linux che siano esperti nell'usare il terminale e vogliono cimentarsi in ambito server o dei servizi utilizzando i container. Quindi si tratta di utenti avanzati con competenze già acquisite per lavorare sui server. A utenti così esperti basteranno queste sintetiche nozioni per poter laovrare con Podman senza grande difficoltà.
Qui ora divisi per argomenti vediamo le nozioni di base da conoscere ed i comandi che dobbiamo utilizzare per utilizzare Podman.
Nei comandi mostrati per renderli più comprensibili useremo le distribuzioni server di alpine, di ubuntu ed il server web open source nginx.