Introduzione
Podman è un'utilità Linux open source per la creazione, la gestione e l'esecuzione di contenitori e immagini. Lo strumento è simile a Docker, consentendo agli utenti di eseguire container standalone (non orchestrati), ma non richiede un demone.
Podman è stato sviluppato da RedHat, ma è supportato anche da altre distribuzioni Linux.
In questo tutorial imparerai a installare e utilizzare Podman su Ubuntu.
Prerequisiti
- Un sistema che esegue Ubuntu (utenti macOS, vedere come installare Podman su macOS.)
- Accesso al terminale (Ctrl + Alt + T ).
- Un account utente con privilegi di amministratore.
Installazione di Podman su Ubuntu
Il pacchetto Podman è disponibile nei repository ufficiali per Ubuntu 20.10 e versioni successive. Le versioni precedenti di Ubuntu richiedono l'aggiunta del repository Kubic prima dell'installazione.
Segui i passaggi seguenti per installare Podman:
Installa Podman su Ubuntu 20.10 o versioni successive
1. Apri il terminale (Ctrl + Alt + T ) e aggiorna il repository del pacchetto di sistema eseguendo:
sudo apt update
2. Installa Podman con il seguente comando:
sudo apt -y install podman
Il -y
flag risponde automaticamente yes
a qualsiasi richiesta durante l'installazione.
Installa Podman su Ubuntu 20.04 o versioni precedenti
Per le versioni precedenti di Ubuntu (versioni precedenti alla 20.10), aggiungi il repository del progetto Kubic prima di installare Podman.
Segui i passaggi seguenti:
1. Procurati la rilascio del sistema operativo per assicurarsi che sia aggiunto il repository corretto:
. /etc/os-release
2. Esegui il comando seguente per aggiungere il repository Kubic:
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"
Il >
Il simbolo reindirizza l'output al file specificato, aggiungendo il repository al file di sistema. In alternativa, reindirizza l'output al comando tee per scrivere nel file specificato.
2. Verifica l'integrità del pacchetto aggiungendo una chiave GPG:
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | sudo apt-key add -
2. Aggiorna il repository del pacchetto con le informazioni dal repository appena aggiunto:
sudo apt update
3. Installa Podman:
sudo apt -y install podman
4. Verifica l'installazione controllando la versione del programma:
podman --version
Importante: Ubuntu 22.04 LTS non supporta più i pacchetti Kubic. Prima di eseguire l'aggiornamento a Ubuntu 22.04, disinstalla i pacchetti dai repository Kubic.
Utilizzo di Podman su Ubuntu
Usa Podman per cercare ed estrarre immagini da repository come docker.io e quay.io ed eseguire container. Questa sezione mostra diversi esempi di utilizzo di Podman su Ubuntu.
Cerca immagini
Cerca le immagini nei repository disponibili utilizzando la seguente sintassi:
podman search [keyword]
Ad esempio, per cercare mysql immagini, esegui:
podman search mysql
Scarica immagini
Scarica un'immagine utilizzando la seguente sintassi:
podman pull [image]
Ad esempio, il comando seguente estrae mysql immagine dal repository:
podman pull mysql
Se l'immagine è disponibile in più repository, Podman ti chiede di selezionare l'immagine che desideri scaricare.
Elenca le immagini scaricate
Elenca tutte le immagini scaricate eseguendo il comando seguente:
podman images
L'output elenca tutte le immagini attualmente sul sistema e i dettagli dell'immagine, inclusi:
repository
. Il repository di origine.tag
. Eventuali tag associati all'immagine.image ID
. Un numero univoco per ogni immagine.created
. La data di creazione dell'immagine.size
. Dimensione dell'immagine su disco.
Crea contenitori
Utilizza la seguente sintassi per creare un nuovo contenitore dall'immagine scaricata:
podman run [options] [image]
Ad esempio, per creare un contenitore da mysql scaricato image, esegui il seguente comando:
podman run -dit mysql
- Il
-d
l'opzione forza la modalità scollegata, eseguendo il contenitore in background con l'unico output che è il nuovocontainer ID
. - Utilizza il
-i
opzione per forzare la modalità interattiva, mantenendo lo standard input aperto anche in modalità staccata. - Il
-t
opzione fa sì che Podman allochi uno pseudo-TTY e lo alleghi allostdin
del contenitore . Questa opzione impediscestdout
reindirizzamento.
La creazione del contenitore genera l'container ID
(forma lunga).
Elenca i contenitori disponibili
Controlla tutti i container sulla tua macchina eseguendo:
podman ps -a
Il -a
flag indica a Podman di mostrare tutti i container, indipendentemente dal loro stato (in esecuzione o fermo). Immettere il comando senza il -a
flag per mostrare solo i contenitori in esecuzione.
L'output include le seguenti informazioni:
container ID
. Il numero univoco di ogni contenitore (forma abbreviata).image
. L'immagine su cui si basa il contenitore.command
. Il comando per avviare il container.created
. Il tempo trascorso dalla creazione del contenitore.status
. Tempo di attività o tempo di inattività del container.ports
. Include tutte le porte inoltrate.names
. Un nome univoco assegnato da Podman per ogni contenitore.
Per mostrare un singolo contenitore, specifica l'container ID
.
Crea immagine dal contenitore
Crea una nuova immagine da mysql
in esecuzione container e caricalo nel repository usando questo comando:
podman commit --author "phoenixNAP" 6f3aeb480f89
Il --author
flag imposta l'autore dell'immagine, seguito dall'container ID
.
In questo esempio, Podman salta il commit di questa immagine poiché non sono state apportate modifiche all'immagine originale.
Arresta o avvia un container
Per interrompere un container in esecuzione, utilizza la seguente sintassi:
podman stop [container-id]
Avvia un contenitore usando:
podman start [container ID]
Ottieni il container ID
elencando i contenitori disponibili.
Ad esempio:
In alternativa, arresta o avvia l'ultimo contenitore specificando il --latest
flag invece dell'container ID
. Ad esempio:
Rimuovi un contenitore
Rimuovere un contenitore esistente con la seguente sintassi:
podman rm [container id]
Ad esempio:
Elenca tutti i contenitori disponibili per ottenere l'container ID
e quindi rimuovere il contenitore. Riesecuzione di podman ps -a
per elencare tutti i contenitori mostra che il contenitore specificato è stato rimosso.