GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare e utilizzare Podman (alternativa Docker)

Hai mai usato Docker ma l'hai trovato troppo dispendioso in termini di risorse sul tuo sistema? In tal caso, potresti provare Podman, un nuovo strumento di Red Hat che fornisce un'alternativa a Docker.

Podman è uno strumento progettato per semplificare la creazione e la gestione dei container. E in questo tutorial, installerai Podman e imparerai alcuni scenari di utilizzo di base. Alla fine, sarai tu a decidere se Podman è lo strumento giusto per te.

Pronto? Continua a leggere e ricomincia a gestire i container!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri seguire, assicurati di avere quanto segue.

  • Una macchina Linux – Questa demo utilizza Ubuntu 20.04 LTS, ma qualsiasi distribuzione Linux funzionerà.
  • Un utente non root con privilegi sudo.

Installazione di Podman su Ubuntu

Prima di gestire i container con Podman, devi prima installare Podman sul tuo computer poiché non è preinstallato nella tua distribuzione Linux.

Per installare Podman su Ubuntu, inizierai aggiornando il tuo gestore di pacchetti APT e aggiungendo il repository di pacchetti Podman.

1. Apri il tuo terminale ed esegui apt update comando seguente per assicurarti di installare gli ultimi aggiornamenti. Questo comando assicura che non ci siano mancate corrispondenze di pacchetti tra la tua macchina e il repository di pacchetti.

sudo apt update -y

2. Dopo aver aggiornato l'indice del pacchetto, esegui source comando seguente per eseguire /etc/os-release file come script. Questo comando assicura che la tua macchina riconosca quale versione di Ubuntu stai utilizzando.

Il file os-release contiene informazioni sul sistema operativo, come nome e nome in codice. Il file potrebbe includere anche altri dettagli come i numeri di versione di vari componenti (kernel, server X e così via.)

source /etc/os-release

3. Esegui sh -c echo comando qui sotto per aggiungere il kubic repository di pacchetti deb su APT. Podman non è disponibile nei repository predefiniti di Ubuntu, quindi dovrai aggiungere il repository Podman prima di installarlo.

Il comando seguente esegue le seguenti operazioni:

  • Crea un nuovo file (sh -c ) nel /etc/apt/sources.list.d/ directory. Questa directory è dove APT scarica i pacchetti deb per l'installazione sulla tua macchina.
  • Assicura che stai utilizzando una versione specifica di Ubuntu ({VERSION_ID} ), che è la versione che hai ottenuto in precedenza da source comando sopra nel passaggio due.
  • Reindirizza l'output (> ) per scrivere in fondo al file, assicurandoti che il tuo input sia scritto correttamente nel file (sources.list.d/devel:kubic:libcontainers:stable.list ).
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"

4. Ora esegui wget comando seguente per aggiungere la chiave del repository all'elenco delle chiavi attendibili di APT.

Red Hat ospita la chiave e la firma con una chiave privata che verifica solo le altre persone che dispongono della loro chiave pubblica. Questa chiave garantisce che Red Hat e non qualcun altro rilasci i pacchetti che scarichi e installi.

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

5. Riesegui il apt update comando per garantire che l'elenco dei pacchetti di APT sia aggiornato.

sudo apt update -y

6. Quindi, esegui apt install comando qui sotto per installare podman .

sudo apt install podman -y

7. Infine, esegui il comando seguente per controllare il --version installato da Podman .

podman --version

Come puoi vedere di seguito, la versione di Podman installata è la 3.4.2, l'ultima versione al momento della scrittura, e la tua potrebbe essere diversa.

Puoi anche eseguire il comando podman inf di seguito per visualizzare ulteriori informazioni sull'installazione di Podman.

podman info

Abilitazione dei registri OCI

Prima di utilizzare Podman per creare contenitori, assicurati che Podman possa comunicare con i registri OCI. Podman supporta più registri OCI contemporaneamente in modo da poter creare contenitori utilizzando diversi repository.

Apri il /etc/containers/registries.conf file con il tuo editor di testo preferito. Questo file definisce tutti i registri con cui Podman può comunicare. Podman consulta questo file per scoprire a quali registri dovrebbe connettersi.

sudo nano /etc/containers/registries.conf

Ora, compila il registries.conf file con le seguenti righe, salva le modifiche e chiudi l'editor.

Queste righe configurano Podman per l'utilizzo del registro pubblico su Docker Hub (docker.io, register.access.redhat.com ) e il registro privato(quay.io ), che è consigliato.

[[registry]]
prefix="[quay.io]()"
location="internal.registry.mirror/quay"
[[registry]]
prefix="[docker.io]()"
location="internal.registry.mirror/docker"
[[registry]]
prefix="[registry.access.redhat.com]()"
location="internal.registry.mirror/redhat"

Eseguire Contenitori Podman con i privilegi Podman

Ora che hai installato Podman e configurato i registri, puoi iniziare a eseguire i container Podman con i privilegi Podman. Il kernel Linux supporta un'ampia gamma di controlli dei permessi sulle sue chiamate di sistema, come le funzionalità.

Nel caso dei contenitori Podman, le funzionalità controllano il comportamento predefinito di root all'interno dello spazio dei nomi utente. Puoi usare il --privileged flag durante l'esecuzione di un container per aggiungere tutte le funzionalità non già presenti nel container.

1. Esegui podman run comando qui sotto per creare un fedora contenitore senza capacità.

podman run -d fedora sleep 100

2. Quindi, esegui il seguente podman top comando per elencare tutte le capacità.

podman top -l capeff 

Come mostrato di seguito, il normale contenitore rootless ha capacità limitate.

3. Esegui podman run comando seguente per creare un contenitore con tutte le funzionalità (--privileged ).

podman run --privileged -d fedora sleep 100

4. Infine, riesegui il podman top comando per verificare la differenza di capacità.

podman top -l capeff

Noterai che le funzionalità complete sono disponibili per questo contenitore a causa del flag –privileged, come mostrato di seguito.

Noterai che le funzionalità complete sono disponibili per questo contenitore a causa del flag –privileged, come mostrato Il flag –privileged consente al contenitore di essere eseguito con tutte le funzionalità, non solo quelle già presenti nel contenitore. Questo flag è importante in quanto associa lo spazio dei nomi utente del contenitore allo spazio dei nomi dell'host, fornendogli tutte le capacità dei processi in esecuzione sul tuo sistema.

Se non imposti il ​​flag –privileged all'avvio di un container, il container avrà un insieme limitato di funzionalità. Nel caso di contenitori che utilizzano il proprio spazio dei nomi utente, dovrai fornire loro tutte le funzionalità in modo esplicito.

Utilizzo di immagini e contenitori Podman

Ora che hai imparato come aggiungere i registri e le funzionalità OCI per un container, puoi lavorare con le immagini e i container Podman. Per questa demo, utilizzerai NGINX come immagine per creare un contenitore.

1. Esegui podman search comando di seguito per elencare tutte le immagini Podman disponibili per nginx

podman search nginx

Di seguito, puoi vedere che ottieni tutte le immagini con tag disponibili per NGINX da docker.io , quay.io e redhat.com repo che hai aggiunto in precedenza nella sezione "Abilitazione dei registri OCI":

  • L'INDICE la colonna mostra dove si trovano le immagini.
  • L'UFFICIALE colonna con OK lo stato indica che l'immagine nella riga è stata creata e supportata dalla sua azienda ufficiale. Ad esempio, il NGINX immagine con OK lo stato è creato e supportato dalla sua azienda, NGINX. Queste immagini verranno aggiornate non appena verranno rilevate vulnerabilità di sicurezza e aggiornamenti delle patch.
  • Il AUTOMAZIONE colonna con OK status significa che le immagini sono build automatizzate. Queste immagini verranno aggiornate non appena verranno rilevate vulnerabilità di sicurezza e aggiornamenti delle patch.

2. Dopo aver selezionato un'immagine NGINX da utilizzare, esegui podman comando qui sotto per scaricare (pull ) l'immagine sul computer locale.

Questa demo utilizza nginx:alpine poiché è l'immagine più piccola e può essere eseguita solo in memoria, risparmiando tempo nelle fasi di costruzione successive.

podman pull nginx:alpine

A questo punto, hai una nuova immagine che puoi utilizzare per creare un contenitore o utilizzare come immagine di base per altri contenitori.

3. Esegui podman images comando per vedere le informazioni sulla tua nuova immagine

podman images

4. Ora esegui il podman run comando seguente per creare un contenitore dall'immagine (nginx:alpine ) ed esegui un nginx server su quell'immagine.

Questo comando esegue quanto segue:

  • Avvia il contenitore in modo interattivo (-it ) e consente di collegare un terminale.
  • Elimina (--rm ) il container dopo che è uscito/si è fermato.
  • Esegue il contenitore in background (--d ) e pubblica (-p ) porta 80 su tutte le interfacce per portare 8080 sul contenitore.
  • Specificare il nome del contenitore (--name web ).
podman run -it --rm -d -p 8080:80 --name web nginx:alpine

Otterrai un ID contenitore casuale, come mostrato di seguito, che puoi utilizzare per monitorare/avviare/arrestare/rimuovere il contenitore. Annota l'ID del contenitore poiché è utile quando controlli i log o arresti un contenitore specifico.

5. Esegui il seguente podman ps comando (senza argomenti) per verificare se il tuo contenitore è in esecuzione.

podman ps

Puoi vedere che il contenitore web è attivo e utilizza la porta 8080/TCP sul tuo computer host per esporre la sua risorsa.

6. Per un doppio controllo, apri il browser web e vai a localhost:8080 o il-tuo-ip-server:8080 , dove il-tuo-ip-server è l'indirizzo IP del tuo server.

Se il tuo container funziona, vedrai la schermata di benvenuto predefinita di NGINX, come mostrato di seguito.

Se non sei sicuro di come sia impostato il contenitore o se presenta errori, esegui il comando podman logs di seguito per ottenere i file di registro per il contenitore. Sostituisci mycontainer con il tuo ID contenitore di destinazione.

podman logs mycontainer

7. Eseguire uno dei podman stop comandi seguenti per arrestare il tuo contenitore. Sostituisci mycontainer con il tuo ID contenitore di destinazione o sostituisci web con il nome effettivo del contenitore.

Poiché hai utilizzato il flag –rm nel passaggio quattro, Podman elimina il tuo contenitore non appena lo arresti. Questa configurazione aiuta a mantenere il tuo spazio di lavoro ordinato.

# Stops the container by Container ID
podman stop mycontainer
# Stops the container by Container Name
podman stop web

8. Infine, esegui podman ps comando per elencare tutti i contenitori, incluso un contenitore interrotto.

podman ps -a

Il tuo contenitore è stato eliminato quando lo avevi interrotto in precedenza, quindi non otterrai nulla nell'elenco, come mostrato di seguito.

Conclusione

In questo articolo, hai imparato a installare Podman e come lavorare con immagini e contenitori per le distribuzioni. A questo punto, puoi ora utilizzare le immagini abilitate per OCI da docker.io , quay.io e redhat.com repository per creare i tuoi contenitori.

Con questa nuova conoscenza, perché non costruire i tuoi pod Kubernetes con Podman play kube o iniziare a utilizzare Ansible per automatizzare i container Podman?


Linux
  1. Come installare e utilizzare Docker su Ubuntu 20.04

  2. Come installare e utilizzare Docker su Ubuntu 18.04

  3. Come installare e utilizzare Docker in Ubuntu 20.04

  4. Come installare e utilizzare Podman in Fedora 34/35

  5. Come installare e utilizzare il comando Ping in Linux

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Docker su Ubuntu 22.04

Come installare e utilizzare Docker su CentOS 8

Come installare e utilizzare Docker su AlmaLinux 8

Come installare e utilizzare Snapd su Debian 11

Come installare e utilizzare Docker nel tuo sistema Linux