GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Podman su Debian 11

Sviluppato da RedHat, Podman è un motore di container senza demone gratuito e open source progettato per sostituire il popolare motore di runtime Docker. Proprio come Docker, semplifica la creazione, l'esecuzione, la distribuzione e la condivisione di applicazioni utilizzando immagini di container e container OCI (Open Container Initiative). Podman utilizza gli spazi dei nomi di utenti e di rete e rispetto a Docker, Podman è considerato più isolato e sicuro. La maggior parte dei comandi in Docker funzionerà in Podman. e quindi, se hai familiarità con l'esecuzione dei comandi Docker, usare podman sarà un gioco da ragazzi.

In questa guida impariamo come installare podman su Debian 11 Occhio di bue.

Installa Podman su Debian 11

I pacchetti, le librerie e le dipendenze podman sono già ospitati nei repository Debian ufficiali. Pertanto puoi facilmente installare podman usando il gestore di pacchetti APT.

Innanzitutto, aggiorna gli elenchi dei pacchetti:

$ sudo apt update

Quindi, installa il motore del contenitore podman come segue:

$ sudo apt install podman

Quando ti viene chiesto di continuare, digita "Y" e premi INVIO.

Per verificare la versione di Podman installata, eseguire:

$ podman --version

Per raccogliere maggiori dettagli sul motore del contenitore podman, esegui il comando:

$ sudo podman info

Dovresti vedere una raffica di output che mostra dettagli complessi come quello che abbiamo di seguito.

Configura i registri Podman

Il file di registro registry.conf è un file di configurazione che specifica i registri del contenitore da utilizzare ogni volta che si desidera eseguire il push o il pull di un'immagine. Il percorso completo del file è /etc/containers/registries.conf . Esistono vari registri di container tra cui Docker Hub, Quay.io, RedHat e molti altri.

Puoi visualizzare il file utilizzando il tuo editor di testo come mostrato

# sudo /etc/containers/registries.conf

In Docker, l'unico registro dei contenitori è Docker Hub. Podman offre agli utenti più libertà di cercare ed estrarre immagini da qualsiasi registro. È possibile definire l'elenco dei registri contenitori aggiungendo la riga seguente.

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

Quando si esegue la podman search o podman pull comando, podman contatterà questi registri iniziando dal primo in quell'ordine. Salva le modifiche ed esci dal file.

Ricerca di immagini

Prima di estrarre le immagini del contenitore, è prudente cercare la loro disponibilità in vari registri.

Ad esempio

$ sudo podman search nginx

L'output ti presenta una vasta gamma di informazioni tra cui il nome del registro, il nome dell'immagine e una breve descrizione.

Accesso a un registro

Prima di iniziare a eseguire il pull o il push di immagini, è necessario accedere a un registro. Nell'esempio seguente, sto effettuando l'accesso al mio account Redhat che, in effetti, mi dà accesso al registro.

$ sudo podman login registry.access.redhat.com

Per disconnettersi dal registro, eseguire il comando:

$ sudo podman logout registry.access.redhat.com

Estrarre un'immagine

Per estrarre un'immagine, usa la sintassi:

$ sudo podman pull image_name

Ad esempio, per estrarre le immagini di build ufficiali di Nginx, esegui il comando:

$ sudo podman pull docker.io/library/nginx

Proviamo a tirare un'altra immagine. Estrarremo l'immagine di MongoDB ufficiale come segue.

$ sudo podman pull docker.io/library/mongo

Elencare un'immagine

Per elencare tutte le immagini, emettere il comando.

$ sudo podman images

Crea un contenitore da un'immagine

Ora che le nostre immagini risiedono sul sistema Debian, possiamo lanciare un container usando la sintassi mostrata. L'opzione -d esegue il contenitore in background e il --name opzione specifica un nome personalizzato per il contenitore

$ sudo podman run -d  --name container_name  image

Ad esempio, per avviare un container in background chiamato webserv1 dall'immagine Nginx, esegui il comando:

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

Puoi avviare più contenitori dalla stessa immagine. Lanciamo un altro container chiamato webserv2 dalla stessa immagine Nginx.

$ sudo podman run -d --name webserv2  docker.io/library/nginx

Elencare i contenitori

In questa sezione, esamineremo vari comandi che puoi utilizzare con i contenitori.

Per controllare i container attualmente in esecuzione, impartisci il comando:

$ sudo podman ps

L'output viene presentato in colonne che forniscono informazioni quali ID contenitore, nome IMAGE, comando che esegue il contenitore, data di creazione e stato.

Per elencare tutti i contenitori inclusi quelli che sono usciti esegui:

$ sudo podman ps -a

Arresto di un container

Per fermare un contenitore, usa la sintassi

$ sudo podman stop CONTAINER_ID

O

$ sudo podman stop container_name

Nell'esempio riportato di seguito, ho interrotto il primo contenitore elencato utilizzando il relativo ID contenitore

$ sudo podman stop 9daeaabdfdfc

Puoi verificare che il contenitore sia stato arrestato utilizzando podman ps comando. Possiamo vedere chiaramente che dopo aver interrotto l'immagine, abbiamo solo 1 immagine in esecuzione.

Il podman ps -a comando elencherà entrambi i contenitori che comprendono il contenitore che è stato appena interrotto.

$ sudo podman ps -a

Avvio di un container

Per avviare un container usa la sintassi:

$ sudo podman start CONTAINER_ID

O

$ sudo podman start container_name

Ad esempio, per avviare webserv1, eseguire:

$ sudo podman start webserv1

Accedi alla shell di un container

L'accesso alla shell di un contenitore è meglio illustrato con un contenitore di un sistema operativo.

Qui scarichiamo o estraiamo un'immagine Ubuntu:

$ sudo podman pull docker.io/library/ubuntu

Dall'immagine creeremo o lanceremo un container e avremo accesso alla shell usando il -it opzione.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash
  • -i, –interactive Mantieni STDIN aperto anche se non collegato
  • -t, –tty Assegna uno pseudo-TTY. L'impostazione predefinita è false

Controlla i log di un container

Per controllare i log di un container usa la sintassi:

$ sudo podman logs container_name

Ad esempio:

$ sudo podman logs webserv2

Mostra le statistiche del container

Per visualizzare le statistiche di tutti i container in esecuzione, esegui:

$ sudo podman stats

Ispeziona un contenitore

Per stampare dettagli complessi su un contenitore, usa l'opzione di ispezione:

$ sudo podman inspect webserv2

Questo stampa un output lungo in formato JSON.

Utilizzare l'opzione --format per filtrare l'output. Ad esempio per stampare l'indirizzo IP dell'esecuzione del contenitore webserv2

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

È quindi possibile eseguire ulteriori informazioni sull'IP, ad esempio utilizzando curl per recuperare le intestazioni HTTP.

$ curl -I ip-address

Eliminazione di un contenitore

Per rimuovere o eliminare completamente un contenitore, prima arrestare il contenitore, nel caso sia in esecuzione, e infine rimuoverlo. In questo esempio, abbiamo interrotto e rimosso il contenitore websev1.

$ sudo podman stop webserv1

Quindi rimuovere il contenitore fermo.

$ sudo podman rm webserv1

Rimozione di un'immagine

Per rimuovere un'immagine, assicurati innanzitutto di aver interrotto e rimosso tutti i contenitori che sono stati avviati dall'immagine. Quindi, usa rmi opzione come mostrato.

$ sudo podman rmi image_name

Ad esempio, per rimuovere l'immagine di Ubuntu, esegui il comando:

$ sudo podman rmi  docker.io/library/ubuntu

Installa Podman più recente - Compila dal sorgente

Puoi testare l'ultima versione di Podman installando la versione di sviluppo dal sorgente.

01. Crea ed esegui dipendenze

sudo apt-get install \
   btrfs-progs \
   git \
   golang-go \
   go-md2man \
   iptables \
   libassuan-dev \
   libbtrfs-dev \
   libc6-dev \
   libdevmapper-dev \
   libglib2.0-dev \
   libgpgme-dev \
   libgpg-error-dev \
   libprotobuf-dev \
   libprotobuf-c-dev \
   libseccomp-dev \
   libselinux1-dev \
   libsystemd-dev \
   pkg-config \
   runc \
   make \
   libapparmor-dev \
   gcc \
   cmake \
   uidmap \
   libostree-dev 

02. Installa Conmon

Il conmon è il monitor del contenitore che è un piccolo programma C il cui compito è guardare il processo principale del contenitore.

git clone https://github.com/containers/conmon
cd conmon
make
sudo make podman
sudo cp /usr/local/libexec/podman/conmon  /usr/local/bin/

03. Installa runc

Per installare l'ultima versione di runc

git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc
cd $GOPATH/src/github.com/opencontainers/runc
make BUILDTAGS="selinux seccomp"
sudo cp runc /usr/bin/runc

03. Installa Container Network Interface (CNI)

Il plug-in CNI viene utilizzato per inserire un'interfaccia di rete nello spazio dei nomi di rete del contenitore.

git clone https://github.com/containernetworking/plugins.git $GOPATH/src/github.com/containernetworking/plugins
cd $GOPATH/src/github.com/containernetworking/plugins
./build_linux.sh
sudo mkdir -p /usr/libexec/cni
sudo cp bin/* /usr/libexec/cni

Configura la rete

sudo mkdir -p /etc/cni/net.d
curl -qsSL https://raw.githubusercontent.com/containers/libpod/master/cni/87-podman-bridge.conflist | sudo tee /etc/cni/net.d/99-loopback.conf

Aggiungi la configurazione

sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
sudo curl -L -o /etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json

04. Installa Podman dal sorgente

git clone https://github.com/containers/podman/ $GOPATH/src/github.com/containers/podman
cd $GOPATH/src/github.com/containers/podman
make
sudo make install
$ podman --version
podman version 4.0.0-dev

Conclusione

Ci auguriamo di aver fornito una solida base per il tuo viaggio per diventare un professionista migliore nell'utilizzo di podman per creare e gestire i container. Questa guida ti ha guidato attraverso l'installazione di podman su Debian 11 Buster.


Debian
  1. Come installare Debian 10 (Buster)

  2. Come installare Python 3.9 su Debian 10

  3. Come installare Memcached su Debian 10

  4. Come installare TeamViewer su Debian 10

  5. Come installare Git su Debian 9

Come installare Skype su Debian 9

Come installare Python 3.7 su Debian 9

Come installare R su Debian 10

Come installare Debian 11

Come installare Vai su Debian 10

Come installare Vai su Debian