Ricerca nel sito web

Come installare e utilizzare Podman (alternativa Docker) su Ubuntu 20.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

Su questa pagina

  1. Prerequisiti
  2. Installazione di Podman su Ubuntu 20.04
  3. Creazione di un nuovo utente ed esecuzione del contenitore hello-world
  4. Uso di base di Podman
  5. Conclusione

Podman è uno strumento open source per la gestione di contenitori, immagini, volumi e pod (gruppo di contenitori). Utilizza le API della libreria libpod per la gestione dei cicli di vita dei container e supporta più formati di immagini dei container, tra cui OCI (Open Container Initiative) e immagini Docker.

Podman è un motore di container conforme a OCI (Open Container Initiative). È compatibile con l'interfaccia CLI Docker e consente di eseguire container senza root (contenitore in esecuzione senza privilegi di root). Podman è stato rilasciato come parte di Red Hat Enterprise Linux, progettato per essere la prossima generazione di strumenti per container Linux con sperimentazione e sviluppo di funzionalità più veloci.

Per questo tutorial imparerai come installare Podman sul sistema Ubuntu 20.04. Installerai Podman e imparerai gli usi di base di podman per la gestione di contenitori, immagini e volumi Docker.

Prerequisiti

  • Un server Ubuntu 20.04: assicurati che tutti i pacchetti siano l'ultima versione, per eliminare le dipendenze deprecate e portare a un errore durante l'installazione.
  • Un utente con privilegi di root, o utente root - per l'installazione di nuovi pacchetti e la modifica della configurazione a livello di sistema.

Installazione di Podman su Ubuntu 20.04

All'inizio, aggiungerai un repository di terze parti e una chiave per l'installazione di podman sul sistema Ubuntu 20.04.

1. Eseguire il seguente comando per esportare le variabili di ambiente nel file /etc/os-release.

. /etc/os-release

2. Aggiungi il repository podman con versione stabile e aggiungi la chiave GPG al tuo sistema usando il comando seguente.

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -

3. Aggiorna/aggiorna i repository di Ubuntu e aggiorna tutti i pacchetti all'ultima versione.

sudo apt update
sudo apt -y upgrade

4. Successivamente, installa podman utilizzando il comando apt di seguito.

sudo apt install podman

Digitare y e premere Invio per continuare l'installazione.

5. Al termine dell'installazione, verificare la versione di podman utilizzando il seguente comando.

podman version

Di seguito è riportato l'output simile che otterrai.

Come puoi vedere, hai installato podman v3.3.1 compilato con Go 1.16 per l'architettura Linux amd64 (64-bit).

Creazione di un nuovo utente ed esecuzione del contenitore hello-world

Podman ti consente di eseguire container sotto l'utente senza privilegi di root. Per questa fase, aggiungerai un nuovo utente ed eseguirai il container hello-world in base all'immagine Docker.

1. Eseguire il seguente comando per aggiungere un nuovo utente johndoe.

useradd -m -s /bin/bash johndoe
passwd johndoe

Digitare la nuova password per l'utente johndoe.

2. Successivamente, accedi come utente johndoe ed esegui il contenitore basato sull'immagine Docker hello-world.

Accedi come utente johndoe.

su - johndoe

Esegui un nuovo contenitore basato sull'immagine Docker hello-world utilizzando il comando podman.

podman run hello-world

Ti verrà chiesto quale registro contenitori desideri utilizzare, scegli il registro contenitori docker.io e vedrai un output simile a quello riportato di seguito.

3. Per verificare il contenitore e le immagini sulla macchina locale, eseguire il comando seguente.

podman ps -a
podman images

Vedrai che viene creato un nuovo contenitore e lo stato corrente è Uscito. Il contenitore è basato sull'immagine Docker hello-world.

Utilizzo di base di Podman

Con questa guida imparerai come utilizzare podman per la gestione di contenitori, immagini e volumi. Imparerai il comando di base di podman per la gestione del container e i comandi che utilizzerai per questa guida sono al 100% uguali al comando Docker CLI.

1. Per trovare le immagini del contenitore compatibili con il podman, eseguire il comando podman di seguito.

podman search nginx

E vedrai un elenco di immagini del contenitore dal registro delle immagini Docker predefinito e dal registro delle immagini Quay.

Scegli le immagini del contenitore nginx dal registro Docker e scaricale sul tuo computer locale utilizzando il comando podman di seguito.

podman pull nginx:alpine

Scegli il registro del contenitore docker.io e inizierà il processo di download per l'immagine del contenitore Nginx.

2. Per verificare le immagini del contenitore disponibili sul computer locale, eseguire il comando podman di seguito.

podman images

E vedrai due immagini: immagini hello-world e nginx.

3. Successivamente, per avviare ed eseguire un nuovo contenitore basato sull'immagine nginx:alpine, eseguire il comando podman con l'opzione run as below.

podman run -it --rm -d -p 8080:80 --name web nginx:alpine

Alcune opzioni che devi conoscere:

  • -i o --interactive - mantiene aperto il contenitore STDIN anche se non collegato.
  • -t o --tty - alloca uno pseudo-terminale che collega il tuo terminale con STDIN e STDOUT del contenitore.
  • --rm - rimuove automaticamente il contenitore quando il contenitore viene chiuso o arrestato.
  • -d - esegue il contenitore in background, scollega il contenitore dopo l'esecuzione.
  • -p 8080:80 - mappa la porta tra il contenitore e il sistema host. La porta 80 sul contenitore è mappata alla porta del sistema host 8080.
  • --name web - specifica il nuovo nome del contenitore come web.
  • nginx:alpine - l'immagine che usiamo è nginx:alpine.

Vedrai la stringa casuale e il numero del tuo contenitore in esecuzione. Verifica il tuo contenitore in esecuzione utilizzando il comando podman di seguito.

podman ps

Vedrai l'output come di seguito.

Lo stato del contenitore è attivo ed espone la porta TCP 8080 sulla macchina host.

Apri il tuo browser web e visita l'indirizzo IP del tuo server con la porta 8080 come di seguito.

E vedrai l'età index.html predefinita del tuo contenitore nginx.

4. Inoltre, puoi controllare i log del tuo contenitore utilizzando l'opzione log come di seguito.

podman logs web

Oppure puoi specificare le ultime righe numeriche del registro del contenitore con l'opzione --tail come di seguito.

podman logs --tail 10 web

5. Ora puoi fermare il contenitore in esecuzione usando l'opzione podman stop come di seguito.

podman stop web

Il tuo web contenitore verrà interrotto. Controlla usando il comando qui sotto.

podman ps
podman ps -a

E vedrai un output simile come di seguito.

Il Web contenitore viene interrotto ed eliminato automaticamente perché stai utilizzando l'opzione --rm sul tuo comando podman.

6. Successivamente, imparerai come utilizzare il volume personalizzato per modificare il file index.html predefinito nel nuovo contenitore.

Crea una nuova directory ~/data e il file index.html usando il seguente comando.

mkdir -p ~/data/
nano ~/data/index.html

Copia e incolla lo script HTML qui sotto.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Container Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container - Managed with Podman</h2>
</body>
</html>

Premere il pulsante Ctrl+x, digitare y, quindi premere Invio per salvare la configurazione ed uscire.

Ora esegui il seguente comando podman per eseguire il nuovo contenitore con volume personalizzato.

podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

Un'opzione che devi conoscere:

  • -v - specifica il volume per il tuo contenitore. La directory ~/data verrà montata nella nuova directory del contenitore /usr/share/nginx/html.

Ora esegui il seguente comando per verificare il contenitore in esecuzione.

podman ps

Vedrai il nuovo contenitore web nello stato Su.

Successivamente, apri il tuo browser web e digita l'indirizzo IP del tuo server con la porta 8080.

E vedrai la pagina index.html personalizzata che hai creato in cima, il che significa che la directory ~/data è montata sul contenitore web.

7. Successivamente, è possibile accedere al contenitore in esecuzione con l'opzione exec ed eseguire la shell sh.

Assicurati che il tuo web contenitore sia in esecuzione utilizzando il seguente comando.

podman ps

Ora esegui il comando podman di seguito per accedere al web del contenitore.

podman exec -it web /bin/sh

Controlla il nome host del contenitore web.

hostname

Controlla l'indirizzo IP e la tabella di routing del contenitore web.

ip a
route -n

Ora digita exit per uscire dal contenitore web.

8. Ora ripulisci il tuo ambiente usando il seguente comando.

Arresta il Web del contenitore utilizzando il comando podman di seguito.

podman stop web

Rimuovi tutti i contenitori con lo stato Exited utilizzando il comando podman di seguito.

podman rm $(podman ps --filter "status=exited" -q)

Conclusione

Congratulazioni! Hai installato correttamente Podman sul sistema Ubuntu 20.04. Inoltre, hai appreso l'utilizzo di base di podman per scaricare le immagini del contenitore, eseguire il contenitore, controllare lo stato del contenitore, i registri e l'utilizzo di base di podman per la gestione del volume. Per il passaggio successivo, puoi provare a creare le tue immagini personalizzate con le specifiche OCI per il push/il caricamento dell'applicazione nel registro contenitori.