GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Tutorial Podman - Nozioni di base per principianti

Introduzione

Podman è un motore di container per l'esecuzione e la gestione di container OCI su Linux. RedHat lo sviluppa come alternativa diretta a Docker, la famosa piattaforma di gestione dei container che ha dato il via a tutto.

Questo tutorial ti aiuterà a capire come funziona Podman spiegandone la sintassi dei comandi e fornendo esempi reali di come utilizzare i comandi Podman.

Prerequisiti

  • Accesso a una riga di comando/finestra del terminale.
  • Podman installato e configurato (vedi Come installare Podman su macOS o Come installare Podman su Ubuntu).

Comandi Podman

Podman ha una sintassi dei comandi molto simile a Docker. Il principale podman comando è seguito da comandi e opzioni di gestione Podman:

podman [command] [options]

Di seguito una tabella contenente tutti i comandi Podman:

Comando Descrizione
attach  Collega a un contenitore in esecuzione usando il suo nome o ID.
auto-update Utilizza il criterio di aggiornamento automatico dei contenitori per aggiornare i contenitori.
build  Utilizza le istruzioni di Containerfiles per creare un'immagine.
commit  Crea una nuova immagine che rifletta le modifiche apportate a un contenitore.
container  Gestisci i contenitori Podman.
cp  Copia file/directory da un container al filesystem locale e viceversa.
build  Crea un contenitore senza avviarlo.
diff  Visualizza le modifiche apportate a un contenitore oa un'immagine.
events  Visualizza eventi podman.
exec  Esegui un processo all'interno di un container in esecuzione.
export  Crea un archivio tar contenente il contenuto del filesystem del contenitore.
generate  Crea output strutturato basato su un contenitore, volume o pod.
healthcheck  Gestisci i controlli dello stato del contenitore.
history  Mostra cronologia immagini.
image  Gestisci immagini.
images  Elenca le immagini disponibili nella memoria locale.
import  Importa un tarball di immagine del filesystem.
info  Mostra informazioni sul sistema Podman.
init  Inizializza i contenitori.
inspect  Mostra la configurazione del contenitore o dell'immagine.
kill  Uccidi i contenitori.
load  Carica un'immagine disponibile nell'archivio del contenitore.
login  Accesso al registro contenitori.
logout  Esci da un registro contenitori.
logs  Visualizza i log dei contenitori.
machine  Gestisci la VM Podman.
manifest  Crea e gestisci elenchi di manifest e indici di immagini.
mount  Monta il filesystem root di un container o elenca i container attualmente montati.
network  Gestisci le reti Podman.
pause  Sospendi i processi contenitore.
play  Riproduci un contenitore, un volume o un pod.
pod  Gestisci i pod Podman.
porta Elenca le mappature delle porte o elenca una mappatura specifica del container per il container.
ps  Elenca i contenitori in esecuzione.
pull  Copia un'immagine da un registro nella memoria locale.
push  Sposta un'immagine da un computer locale a una destinazione specificata.
rename  Rinomina un contenitore.
restart  Riavvia un contenitore.
rm  Rimuovi un contenitore.
rmi  Rimuovi un'immagine dalla memoria locale.
run  Esegui un comando in un contenitore.
save  Salva l'immagine in un file locale.
search  Cerca un'immagine in un registro.
secret  Manipolare i segreti.
start  Avvia un contenitore.
stats  Visualizza le statistiche sull'utilizzo delle risorse.
stop  Arresta un contenitore.
system  Gestisci i sistemi Podman.
tag  Assegna un nome a un'immagine locale.
top  Mostra i processi in esecuzione in un container.
unmount  Smonta il filesystem radice di un container.
unpause  Riattiva i processi contenitore.
unshare  Avvia un processo in un nuovo spazio dei nomi utente.
untag  Rimuovi i tag da un'immagine locale.
version  Visualizza le informazioni sulla versione.
volume  Gestisci i volumi dei contenitori.
wait  Aspetta che un contenitore si fermi.

Esercitazione Podman

Sebbene Podman sia principalmente un motore di container, è progettato per creare ed eseguire container OCI, gli utenti possono anche utilizzare podman comandi per gestire le immagini del contenitore.

Le sezioni seguenti spiegano come utilizzare Podman per creare e manipolare immagini, contenitori e pod.

Visualizzazione del manuale di assistenza di Podman

Puoi fare riferimento rapidamente alla documentazione di Podman utilizzando la riga di comando. Per visualizzare il podman disponibile comandi nel tuo terminale, digita:

podman help

Per vedere il manuale completo di Podman, usa il comando man:

Immagini Podman

La creazione e la gestione delle immagini in Podman viene eseguita con Buildah, uno strumento di creazione delle immagini che utilizza un'interfaccia coreutils di livello inferiore. Quando un utente esegue un podman comando relativo alle immagini, Podman chiama Buildah per eseguire l'azione.

Le sezioni seguenti illustrano alcuni importanti comandi di gestione delle immagini.

Ricerca di immagini

Cerca nei registri le immagini disponibili utilizzando la search comando.

podman search [search-term]

Limita il numero di risultati con il --limit opzione. Ad esempio, per produrre tre risultati per i "centos" termine di ricerca, digitare:

podman search --limit 3 centos

Ispeziona immagine

Prima di estrarre un'immagine Podman, è buona norma ispezionarla. Usa il podman inspect comando e il sistema emette i metadati dell'immagine, come la dimensione del file, l'architettura, il sistema operativo, ecc.

podman inspect [repository or image ID]

Usa il --format opzione con il podman inspect comando per ottenere metadati specifici. Nell'esempio seguente, il comando restituisce solo la descrizione dell'immagine:

podman inspect --format=’{{.Labels.description}}’ [image ID]

Download di immagini

L'estrazione di immagini dai repository online viene eseguita utilizzando il podman pull comando. La sintassi è:

podman pull [registry/image]

L'esempio illustra l'estrazione di un'immagine da fedoraproject.org registro:

Esecuzione di immagini

Esegui le immagini Podman con podman run :

podman run [image]

Se l'immagine non è disponibile localmente, Podman la estrae da un registro online e poi la esegue come contenitore.

Visualizzazione delle immagini

Le podman images il sottocomando viene utilizzato per elencare le immagini disponibili localmente:

podman images

Utilizzare le opzioni per restringere i risultati della ricerca. Il --filter l'opzione filtra l'output in base alle condizioni fornite. Ad esempio, il comando seguente cerca tutte le immagini contenenti "redhat" nel nome:

podman images --filter reference=redhat

Creazione di immagini personalizzate

Per creare immagini personalizzate con Podman, è necessario un file docker o un file contenitore. Questi file contengono le istruzioni che lo strumento Buildah utilizza per creare un'immagine.

La creazione dei file viene eseguita con podman build comando. Ad esempio, per creare un'immagine da una directory contenente lo script di istruzioni, eseguire il comando seguente:

podman build .

Buildah raccoglie il contesto del file necessario e crea un'immagine.

Rimozione di immagini

Il podman rmi Il comando viene utilizzato per rimuovere le immagini dalla memoria locale. Prima di rimuovere un'immagine Podman, assicurati che tutti i contenitori correlati siano stati fermati e rimossi.

Rimuovere un'immagine utilizzando il podman rmi comando seguito dal nome dell'immagine o dall'ID:

podman rmi [image-name-or-id]

L'output conferma che l'immagine è stata rimossa.

Contenitori Podman

La creazione e la gestione dei container è la funzione principale di Podman. Trova alcuni dei comandi di gestione dei container più comuni nella sezione seguente.

Contenitori in esecuzione

La podman run il comando ha le stesse funzioni di docker run. Le opzioni che seguono il comando dipendono dal tipo di contenitore in esecuzione. L'esempio seguente illustra l'esecuzione di un httpd ad esempio, utilizzando un'immagine disponibile in docker.io deposito:

podman run -p 8080:80/tcp docker.io/library/httpd

Il comando esegue il contenitore e visualizza il relativo prompt dei comandi.

Esci dal prompt del contenitore premendo Ctrl + C . Questo comando uscirà dal contenitore.

Contenitori in esecuzione in background

Per saltare il prompt del contenitore ed eseguire il contenitore in background, utilizza la seguente sintassi:

podman run -dt -p 8080:80/tcp docker.io/library/httpd

Se il contenitore si avvia correttamente, l'output del comando visualizza l'ID lungo del contenitore.

Collegamento ai contenitori

Inserisci il contenitore con il podman attach comando:

podman attach [container-name-or-id]

L'esempio mostra il collegamento a un container Alpine Linux in esecuzione utilizzando l'ID container.

Visualizzazione dei contenitori in esecuzione

Visualizza i container attualmente in esecuzione con ps comando:

podman ps

L'output del comando mostra un elenco contenente informazioni di base sull'esecuzione dei container.

Eliminazione automatica dei contenitori dopo la chiusura

Usa il --rm opzione con podman run per eliminare automaticamente un contenitore:

podman run --rm -dt -p 8080:80/tcp alpine:latest

Avvio e arresto dei container

Usa start e stop comandi per avviare e interrompere i contenitori esistenti.

podman start [container-id]

L'output mostra l'ID del contenitore.

podman stop [container-id]

Viene visualizzato l'ID del container fermo.

Assegnazione di nomi ai contenitori

Puoi nominare i contenitori in esecuzione utilizzando l'opzione --name con il podman run comando. Ad esempio, per denominare un container Alpine Linux, utilizzare il comando seguente:

podman run --name AlpineTest -dt -p 8080:80/tcp alpine:latest

L'immagine sotto mostra che podman run ha avuto successo. Il podman ps gli elenchi di comandi che eseguono contenitori Podman e il nome è visibile in NAMES colonna.

Visualizzazione dei registri dei contenitori

Visualizza i registri del contenitore al momento dell'esecuzione con i podman logs comando.

podman logs [container-name-or-id]

Usa il -l flag per visualizzare i log per il container più recente.

Rimozione dei contenitori

Per eliminare un contenitore Podman, assicurati innanzitutto che il contenitore sia stato arrestato. Quindi, usa il podman rm comando seguito dal nome o dall'ID del contenitore.

podman rm [container-name-or-id]

L'esempio seguente mostra la rimozione dell'AlpineTest contenitore.

Per rimuovere un contenitore in esecuzione o inutilizzabile, aggiungi -f opzione.

podman rm -f [container-name-or-id]

Per rimuovere più contenitori in una volta sola, elenca gli ID dei contenitori separati da uno spazio:

podman rm [container-1-id container-2-id container-3-id]

Bacce Podman

I pod sono gruppi di contenitori che condividono risorse. I pod Podman sono la caratteristica che distingue Podman da Docker. Le sezioni successive illustrano alcune delle operazioni comuni del pod in Podman.

Elenco dei pod

Utilizzare il comando seguente per elencare tutti i pod disponibili nel sistema:

podman pod ls

L'elenco mostra l'ID pod, il nome, lo stato, l'ora di creazione, l'ID infra e il numero di contenitori che contiene.

Creazione di contenitori vuoti

Crea un pod vuoto in Podman usando la seguente sintassi:

podman pod create

L'output mostra l'ID del pod appena creato.

Aggiunta di contenitori ai pod

Per aggiungere un contenitore a un pod, utilizza il --pod etichetta con docker run :

podman run [options] --pod [pod-name-or-id] [image]

Nell'esempio seguente, al pod viene assegnato un container Alpine Linux con l'ID e06ed089b454 :

Creazione di pod con contenitori

Podman può creare un contenitore e aggiungerlo a un nuovo pod in una singola podman run comando. La sintassi include il --pod etichetta:

podman run [options] --pod new:[pod-name] [image]

L'esempio seguente esegue un container con alpine:latest immagine e la aggiunge a un nuovo pod denominato AlpineTest :

Il podman pod ls l'output del comando mostra il nuovo pod con due contenitori.

Avvio, arresto ed eliminazione dei pod

Avvia un pod usando il seguente comando:

podman pod start [pod-name-or-id]

Per fermare un pod, esegui:

podman pod stop [pod-name-or-id]

Per rimuovere un pod fermo e il suo contenitore, usa:

podman pod rm [pod-name-or-id]

Per interrompere e rimuovere i contenitori in esecuzione e quindi rimuovere il pod, utilizza il -f opzione:

podman pod rm -f [pod-name-or-id]

Per rimuovere più pod interrotti con un comando, elenca gli ID pod separati da uno spazio:

podman pod rm -f [pod1-id pod2-id pod3-id]

Potenziali problemi di Podman e come risolverli

Questa sezione elenca alcuni problemi comuni di Podman e fornisce soluzioni.

Impossibile esporre la porta privilegiata

Podman consente agli utenti non root di eseguire container. Tuttavia, sono limitati all'inoltro solo a porte non privilegiate. Se tenti di inoltrare a una porta privilegiata come utente non root, viene visualizzato il seguente messaggio di errore:

La soluzione a questo problema è scegliere una porta non privilegiata o eseguire il comando utilizzando sudo.

Problemi di ricerca Podman

Un altro problema comune è la podman search comando che restituisce un output vuoto.

Questo problema di solito riguarda il /etc/containers/registries.conf file. Apri il file in un editor di testo:

sudo nano /etc/containers/registries.conf

Scorri fino alla fine del file e assicurati che Podman disponga di registri da cercare.

Se non hai registri elencati nel file, puoi aggiungere quelli comuni, come RedHat, Fedora e Docker, usando la seguente sintassi:

unqualified-search-registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]

Salva il file. La podman search l'elenco deve essere compilato con i risultati dei registri online registrati.

Errore:configurazione fornita non valida

Quando si aggiungono contenitori a un pod, potrebbe essere visualizzato il seguente messaggio:

Error: invalid config provided: published or exposed ports must be defined when the pod is created: network cannot be configured when it is shared with a pod

Questo problema si verifica quando si tenta di aggiungere un contenitore con porte che non sono state definite durante la creazione del pod. Attualmente, Podman non lo consente.


Ubuntu
  1. Python SciPy Tutorial - Una guida per principianti

  2. Tutorial Jenkins:Nozioni di base per principianti

  3. Tutorial di configurazione della rete Netplan per principianti

  4. Tutorial sul comando cd di Linux per principianti (8 esempi)

  5. Tutorial sul comando della data di Linux per principianti (8 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Bash Scripting Tutorial per principianti

Bash Heredoc Tutorial per principianti

Come installare Google Chrome su Ubuntu 20.04:Tutorial per principianti