Podman (der POD MANager) ist eine OCI-konforme Container-Engine, die von Red Hat als direkter Ersatz für Docker entwickelt wurde. Es wird verwendet, um Container, Images und Volumes über eine Befehlszeilenschnittstelle zu verwalten und auszuführen. Sowohl Docker als auch Podman sind ähnliche Software. Der einzige Unterschied besteht darin, dass Podman keinen Daemon zum Ausführen von Containern benötigt, während Docker den Docker Engine-Daemon benötigt. Podman verwendet die libpod-Bibliothek, um ein ganzes Container-Ökosystem zu verwalten.
In diesem Tutorial zeigen wir Ihnen, wie Sie Podman unter Debian 11 installieren und verwenden.
Voraussetzungen
- Ein Server mit Debian 11.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Podman installieren
Das Podman-Paket ist im Standard-Repository von Debian 11 enthalten. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
apt-get install podman -y
Überprüfen Sie nach der Installation von Podman die Podman-Version mit dem folgenden Befehl:
podman --version
Sie sollten die Podman-Version in der folgenden Ausgabe sehen:
podman version 3.0.1
Weitere Informationen zu Podman erhalten Sie mit dem folgenden Befehl:
podman info
Sie erhalten die folgende Ausgabe:
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
OCI-Registrierung hinzufügen
Podman verwendet die Registry-Konfigurationsdatei /etc/containers/registries.conf, um alle Container-Images aus dem Internet abzurufen. Sie müssen es also bearbeiten und die Registrierung definieren:
nano /etc/containers/registries.conf
Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:
[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 = [ ]
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
So verwenden Sie Podman
In diesem Abschnitt zeigen wir Ihnen, wie Sie mit dem Podman-Befehl Bilder ziehen und einen Container ausführen.
Um ein Debian-Image abzurufen, führen Sie den folgenden Befehl aus:
podman pull debian
Sie erhalten die folgende Ausgabe:
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
Sie können Ihr heruntergeladenes Bild mit dem folgenden Befehl anzeigen:
podman images
Sie erhalten die folgende Ausgabe:
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/debian latest 827e5611389a 11 days ago 129 MB
Führen Sie als Nächstes einen Container aus dem Debian-Image mit dem folgenden Befehl aus:
podman run -dit debian:latest
Sie erhalten die folgende Ausgabe:
f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103
Sie können alle laufenden Container mit dem folgenden Befehl auflisten:
podman ps
Sie sollten die folgende Ausgabe sehen:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f85c4df5ab78 docker.io/library/debian:latest bash 13 seconds ago Up 13 seconds ago competent_cori
Um den laufenden Container zu untersuchen, führen Sie den Podman-Befehl aus, indem Sie die Container-ID angeben:
podman inspect f85c4df5ab78
Sie erhalten die folgende Ausgabe:
[ { "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 } },
Führen Sie den folgenden Befehl aus, um das Containerprotokoll zu überprüfen:
podman logs f85c4df5ab78
Wenn Sie eine Verbindung zum laufenden Container herstellen möchten, führen Sie den folgenden Befehl aus:
podman exec -it f85c4df5ab78 /bin/bash
Sie gelangen wie folgt in die Container-Shell:
[email protected]:/#
Um die Container-Shell zu verlassen, führen Sie den folgenden Befehl aus:
[email protected]:/# exit
So stoppen und entfernen Sie einen Container
Sie können Podman auch verwenden, um einen Container zu starten, zu stoppen und zu entfernen.
Führen Sie den folgenden Befehl aus, um einen laufenden Container zu stoppen:
podman stop f85c4df5ab78
Sie können den angehaltenen Container jetzt mit dem folgenden Befehl überprüfen:
podman ps -a
Sie sollten die folgende Ausgabe sehen:
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
Führen Sie den folgenden Befehl aus, um einen angehaltenen Container zu entfernen:
podman rm f85c4df5ab78
Wenn Sie den neuesten Container stoppen möchten, führen Sie den folgenden Befehl aus:
podman stop --latest
Führen Sie den folgenden Befehl aus, um den neuesten Container zu starten:
podman start --latest
Führen Sie den folgenden Befehl aus, um den neuesten Container zu entfernen:
podman rm --latest
Führen Sie den folgenden Befehl aus, um alle laufenden Container zu entfernen:
podman rm -f `podman ps -aq`
Um ein Bild zu entfernen, führen Sie den folgenden Befehl aus:
podman rmi 827e5611389a
Sie erhalten die folgende Ausgabe:
Untagged: docker.io/library/debian:latest Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
Schlussfolgerung
Im obigen Beitrag haben wir erklärt, wie man den Podman unter Debian 11 installiert und verwendet. Sie können jetzt den Podman als Ersatz für Docker verwenden, um die Container auszuführen und zu verwalten.