Come installare Podman come alternativa a Docker su Debian 11
Su questa pagina
- Prerequisiti
- Installa Podman
- Aggiungi registro OCI
- Come usare Podman
- Come fermare e rimuovere un contenitore
- Introduzione a Podman
- Conclusione
Podman (POD MANager) è un motore di container conforme a OCI, sviluppato da Red Hat come sostituto immediato di Docker. Viene utilizzato per gestire ed eseguire contenitori, immagini e volumi tramite un'interfaccia della riga di comando. Sia Docker che Podman sono software simili. L'unica differenza è che Podman non richiede un demone per eseguire i container, mentre Docker necessita del demone Docker Engine. Podman utilizza la libreria libpod per gestire un intero ecosistema di container.
In questo tutorial, ti mostreremo come installare e utilizzare Podman su Debian 11.
Prerequisiti
- Un server che esegue Debian 11.
- Sul server è configurata una password di root.
Installa Podmann
Il pacchetto Podman è incluso nel repository predefinito di Debian 11. Puoi installarlo semplicemente eseguendo il seguente comando:
apt-get install podman -y
Una volta installato Podman, verifica la versione di Podman utilizzando il comando seguente:
podman --version
Dovresti vedere la versione di Podman nel seguente output:
podman version 3.0.1
Puoi ottenere maggiori informazioni su Podman usando il seguente comando:
podman info
Otterrai il seguente output:
host: arch: amd64 buildahVersion: 1.19.6 cgroupManager: systemd cgroupVersion: v2 conmon: package: 'conmon: /usr/bin/conmon' path: /usr/bin/conmon version: 'conmon version 2.0.25, commit: unknown' cpus: 2 distribution: distribution: debian version: "11" eventLogger: journald hostname: debian11 idMappings: gidmap: null uidmap: null kernel: 5.10.0-8-amd64 linkmode: dynamic memFree: 3365183488 memTotal: 4122267648 ociRuntime: name: crun package: 'crun: /usr/bin/crun' path: /usr/bin/crun version: |- crun version 0.17 commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a spec: 1.0.0 +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL os: linux remoteSocket: exists: true path: /run/podman/podman.sock security: apparmorEnabled: true capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT rootless: false seccompEnabled: true selinuxEnabled: false
Aggiungi registro OCI
Podman utilizza il file di configurazione del registro /etc/containers/registries.conf per estrarre tutte le immagini del contenitore da Internet. Quindi dovrai modificarlo e definire il registro:
nano /etc/containers/registries.conf
Aggiungere le seguenti righe alla fine del file:
[registries.insecure] registries = [ ] # If you need to block pull access from a registry, uncomment the section below # and add the registries fully-qualified name. # Docker only [registries.block] registries = [ ]
Salva e chiudi il file quando hai finito.
Come usare Podman
In questa sezione, ti mostreremo come utilizzare il comando Podman per estrarre immagini ed eseguire un contenitore.
Per estrarre un'immagine Debian, esegui il seguente comando:
podman pull debian
Otterrai il seguente output:
Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf) Trying to pull docker.io/library/debian:latest... Getting image source signatures Copying blob 647acf3d48c2 done Copying config 827e561138 done Writing manifest to image destination Storing signatures 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
Puoi vedere l'immagine scaricata usando il seguente comando:
podman images
Otterrai il seguente output:
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/debian latest 827e5611389a 11 days ago 129 MB
Quindi, esegui un contenitore dall'immagine Debian usando il seguente comando:
podman run -dit debian:latest
Otterrai il seguente output:
f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103
Puoi elencare tutti i contenitori in esecuzione utilizzando il seguente comando:
podman ps
Dovresti vedere il seguente output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f85c4df5ab78 docker.io/library/debian:latest bash 13 seconds ago Up 13 seconds ago competent_cori
Per ispezionare il contenitore in esecuzione, esegui il comando Podman specificando l'ID contenitore:
podman inspect f85c4df5ab78
Otterrai il seguente output:
[ { "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103", "Created": "2021-11-28T07:00:12.795302341Z", "Path": "bash", "Args": [ "bash" ], "State": { "OciVersion": "1.0.2-dev", "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 6881, "ConmonPid": 6878, "ExitCode": 0, "Error": "", "StartedAt": "2021-11-28T07:00:13.551753552Z", "FinishedAt": "0001-01-01T00:00:00Z", "Healthcheck": { "Status": "", "FailingStreak": 0, "Log": null } },
Per controllare il log del contenitore, eseguire il comando seguente:
podman logs f85c4df5ab78
Se desideri connetterti al contenitore in esecuzione, esegui il seguente comando:
podman exec -it f85c4df5ab78 /bin/bash
Entrerai nella shell del contenitore come mostrato di seguito:
:/#
Per uscire dalla shell del contenitore, eseguire il seguente comando:
:/# exit
Come fermare e rimuovere un contenitore
Puoi anche utilizzare Podman per avviare, arrestare e rimuovere un contenitore.
Per arrestare un contenitore in esecuzione, eseguire il seguente comando:
podman stop f85c4df5ab78
Ora puoi verificare il contenitore arrestato utilizzando il seguente comando:
podman ps -a
Dovresti vedere il seguente output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f85c4df5ab78 docker.io/library/debian:latest bash 3 minutes ago Exited (137) 10 seconds ago competent_cori
Per rimuovere un contenitore arrestato, eseguire il comando seguente:
podman rm f85c4df5ab78
Se desideri arrestare l'ultimo contenitore, esegui il seguente comando:
podman stop --latest
Per avviare l'ultimo contenitore, eseguire il comando seguente:
podman start --latest
Per rimuovere l'ultimo contenitore, eseguire il comando seguente:
podman rm --latest
Per rimuovere tutti i contenitori in esecuzione, eseguire il seguente comando:
podman rm -f `podman ps -aq`
Per rimuovere un'immagine, eseguire il seguente comando:
podman rmi 827e5611389a
Otterrai il seguente output:
Untagged: docker.io/library/debian:latest Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
Iniziare con Podman
Una guida dettagliata su come utilizzare Podman per creare immagini, volumi e contenitori è disponibile qui: Introduzione a Podman: gestione di immagini, contenitori e volumi
Conclusione
Nel post precedente, abbiamo spiegato come installare e utilizzare Podman su Debian 11. Ora puoi utilizzare Podman in sostituzione di Docker per eseguire e gestire i container.