So installierst du Podman als Docker-Alternative unter Debian 11
Podman (der POD MANager) ist eine OCI-kompatible Container-Engine, die von Red Hat als Ersatz für Docker entwickelt wurde. Sie wird verwendet, um Container, Images und Volumes über eine Befehlszeilenschnittstelle zu verwalten und auszuführen. Sowohl Docker als auch Podman sind eine ähnliche Software. Der einzige Unterschied ist, dass Podman keinen Daemon benötigt, um Container auszuführen, während Docker den Docker Engine Daemon benötigt. Podman verwendet die libpod-Bibliothek, um ein ganzes Container-Ökosystem zu verwalten.
In diesem Lernprogramm zeigen wir dir, wie du Podman unter Debian 11 installierst und benutzt.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Podman installieren
Das Podman-Paket ist im Standard-Repository von Debian 11 enthalten. Du kannst es installieren, indem du einfach den folgenden Befehl ausführst:
apt-get install podman -y
Sobald Podman installiert ist, überprüfe die Podman-Version mit dem folgenden Befehl:
podman --version
Du solltest die Podman-Version in der folgenden Ausgabe sehen:
podman version 3.0.1
Weitere Informationen zu Podman kannst du mit folgendem Befehl abrufen:
podman info
Du erhältst 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 zu beziehen. Du musst sie also bearbeiten und die Registry definieren:
nano /etc/containers/registries.conf
Füge die folgenden Zeilen am Ende der Datei ein:
[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 = [ ]
Speichere und schließe die Datei, wenn du fertig bist.
Wie man Podman benutzt
In diesem Abschnitt zeigen wir dir, wie du den Befehl Podman verwendest, um Images zu ziehen und einen Container zu starten.
Um ein Debian-Image zu ziehen, führe den folgenden Befehl aus:
podman pull debian
Du erhältst 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
Du kannst dein heruntergeladenes Image mit folgendem Befehl anzeigen:
podman images
Du erhältst die folgende Ausgabe:
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/debian latest 827e5611389a 11 days ago 129 MB
Als Nächstes führst du einen Container aus dem Debian-Image mit folgendem Befehl aus:
podman run -dit debian:latest
Du erhältst die folgende Ausgabe:
f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103
Du kannst alle laufenden Container mit dem folgenden Befehl auflisten:
podman ps
Du solltest 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 überprüfen, führe den Befehl Podman aus, indem du die Container-ID angibst:
podman inspect f85c4df5ab78
Du erhältst 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 } },
Um das Containerprotokoll zu überprüfen, führe den folgenden Befehl aus:
podman logs f85c4df5ab78
Wenn du dich mit dem laufenden Container verbinden willst, führe den folgenden Befehl aus:
podman exec -it f85c4df5ab78 /bin/bash
Du gelangst in die Container-Shell wie unten gezeigt:
root@f85c4df5ab78:/#
Um die Container-Shell zu verlassen, führe den folgenden Befehl aus:
root@f85c4df5ab78:/# exit
So stoppst und entfernst du einen Container
Du kannst Podman auch verwenden, um einen Container zu starten, zu stoppen und zu entfernen.
Um einen laufenden Container anzuhalten, führe den folgenden Befehl aus:
podman stop f85c4df5ab78
Jetzt kannst du den gestoppten Container mit folgendem Befehl überprüfen:
podman ps -a
Du solltest 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
Um einen gestoppten Container zu entfernen, führe den folgenden Befehl aus:
podman rm f85c4df5ab78
Wenn du den neuesten Container stoppen willst, führe den folgenden Befehl aus:
podman stop --latest
Um den neuesten Container zu starten, führe den folgenden Befehl aus:
podman start --latest
Um den neuesten Container zu entfernen, führe den folgenden Befehl aus:
podman rm --latest
Um alle laufenden Container zu entfernen, führe den folgenden Befehl aus:
podman rm -f `podman ps -aq`
Um ein Image zu entfernen, führe den folgenden Befehl aus:
podman rmi 827e5611389a
Du erhältst die folgende Ausgabe:
Untagged: docker.io/library/debian:latest Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
Fazit
Im obigen Beitrag haben wir erklärt, wie man Podman unter Debian 11 installiert und benutzt. Jetzt kannst du Podman als Ersatz für Docker verwenden, um die Container auszuführen und zu verwalten.