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.

Das könnte dich auch interessieren …