Erste Schritte mit Podman
Erste Schritte mit Podman
Podman ist ein Dienstprogramm, das als Teil der libpod-Bibliothek bereitgestellt wird. Es kann verwendet werden, um Container zu erstellen und zu verwalten. Das folgende Tutorial zeigt Ihnen, wie Sie Podman einrichten und einige grundlegende Befehle ausführen.
Podman-Dokumentation
Die Dokumentation für Podman finden Sie hier.
Podman installieren
Für die Installation oder das Erstellen von Podman lesen Sie bitte die Installationsanweisungen.
Sich mit Podman vertraut machen
Die Codebeispiele sind dafür gedacht, als Nicht-Root-Benutzer ausgeführt zu werden und verwenden
sudo
, wo Root-Berechtigung erforderlich ist.
Hilfe erhalten
Um Hilfe zu erhalten und herauszufinden, wie Podman funktioniert, können Sie die Hilfe verwenden:
podman --help
podman <subcommand> --help
Für weitere Details können Sie die Handbuchseiten überprüfen:
man podman
man podman-<subcommand>
Bitte beziehen Sie sich auch auf den Podman-Fehlerbehebungsleitfaden, um bekannte Probleme und Tipps zur Lösung häufiger Konfigurationsfehler zu finden.
Images suchen, herunterladen und auflisten
Podman kann mit einigen einfachen Schlüsselwörtern nach Images in entfernten Registries suchen.
podman search <search_term>
Sie können Ihre Suche auch mit Filtern erweitern:
podman search httpd --filter=is-official
Das Herunterladen (Pullen) eines Images ist ebenfalls einfach.
podman pull docker.io/library/httpd
Nach dem Herunterladen einiger Images können Sie alle Images auflisten, die auf Ihrem Computer vorhanden sind.
podman images
Hinweis: Podman sucht in verschiedenen Registries. Daher wird empfohlen, den vollständigen Image-Namen (docker.io/library/httpd anstatt httpd) zu verwenden, um sicherzustellen, dass Sie das richtige Image verwenden.
Einen Container ausführen
Dieser Beispiel-Container führt einen sehr einfachen httpd-Server aus, der nur seine Index-Seite bereitstellt.
podman run -dt -p 8080:80/tcp docker.io/library/httpd
Hinweis: Da der Container im abgetrennten Modus ausgeführt wird, dargestellt durch
das -d
im podman run
Befehl, gibt Podman die Container-ID aus, nachdem
der Befehl ausgeführt wurde. Das -t
fügt auch ein Pseudo-TTY hinzu, um beliebige
Befehle in einer interaktiven Shell auszuführen.
Hinweis: Wir verwenden Port-Weiterleitung, um auf den HTTP-Server zugreifen zu können. Für eine erfolgreiche Ausführung wird mindestens slirp4netns v0.3.0 benötigt.
Laufende Container auflisten
Der podman ps
Befehl wird verwendet, um erstellte und laufende Container aufzulisten.
podman ps
Hinweis: Wenn Sie -a
zum podman ps
Befehl hinzufügen, zeigt Podman alle
Container an (erstellt, beendet, laufend, etc.).
Den httpd-Container testen
Wie Sie sehen können, hat der Container keine IP-Adresse zugewiesen bekommen. Der Container ist über seinen veröffentlichten Port auf Ihrem lokalen Computer erreichbar.
curl http://localhost:8080
Von einem anderen Computer aus müssen Sie die IP-Adresse des Hosts verwenden, der den Container ausführt.
curl http://<IP_Address>:8080
Hinweis: Anstatt curl zu verwenden, können Sie auch einen Browser auf
http://localhost:8080
richten.
Einen laufenden Container inspizieren
Sie können einen laufenden Container auf Metadaten und Details über sich selbst "inspizieren".
podman inspect
liefert viele nützliche Informationen wie Umgebungsvariablen,
Netzwerkeinstellungen oder zugewiesene Ressourcen.
Da der Container im rootless Modus läuft, wird dem Container keine IP-Adresse zugewiesen.
podman inspect -l | grep IPAddress
"IPAddress": "",
Hinweis: Das -l
ist ein praktisches Argument für latest container. Sie können
auch die ID oder den Namen des Containers anstelle von -l
oder dem langen Argument
--latest
verwenden.
Hinweis: Wenn Sie den Remote-Podman-Client verwenden, einschließlich Mac- und Windows-
Computern (ausgenommen WSL2), ist die -l
Option nicht verfügbar.
Container-Logs anzeigen
Sie können auch die Logs des Containers mit Podman anzeigen:
podman logs -l
127.0.0.1 - - [04/May/2020:08:33:48 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:50 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:51 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:51 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:52 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:52 +0000] "GET / HTTP/1.1" 200 45
Container-PIDs anzeigen
Sie können die httpd-PID im Container mit podman top
beobachten.
podman top -l
USER PID PPID %CPU ELAPSED TTY TIME COMMAND
root 1 0 0.000 22m13.33281018s pts/0 0s httpd -DFOREGROUND
daemon 3 1 0.000 22m13.333132179s pts/0 0s httpd -DFOREGROUND
daemon 4 1 0.000 22m13.333276305s pts/0 0s httpd -DFOREGROUND
daemon 5 1 0.000 22m13.333818476s pts/0 0s httpd -DFOREGROUND
Container stoppen
Sie können den Container stoppen:
podman stop -l
Sie können den Status von einem oder mehreren Containern mit dem podman ps
Befehl überprüfen. In diesem Fall sollten Sie das -a
Argument verwenden, um alle Container aufzulisten.
podman ps -a
Container entfernen
Schließlich können Sie den Container entfernen:
podman rm -l
Sie können die Löschung des Containers überprüfen, indem Sie podman ps -a
ausführen.
Netzwerk
Für eine detailliertere Anleitung über Netzwerk und DNS in Containern, siehe bitte den Netzwerk-Leitfaden.
Checkpoint, Migration und Wiederherstellung von Containern
Das Erstellen eines Checkpoints eines Containers stoppt den Container und schreibt den Zustand aller Prozesse im Container auf die Festplatte. Damit kann ein Container später migriert und wiederhergestellt werden, wobei er genau zum selben Zeitpunkt weiterläuft wie beim Checkpoint. Weitere Details finden Sie in den Checkpoint-Anweisungen.
Integrationstests
Für weitere Informationen zum Einrichten und Ausführen der Integrationstests in Ihrer Umgebung, schauen Sie sich die Integrationstests README.md an.
Podman Python-Dokumentation
Die Dokumentation für das Podman Python SDK befindet sich hier.
Weitere Informationen
Für weitere Informationen über Podman und seine Unterbefehle, schauen Sie sich die ASCII-Art-Demos auf der README.md Seite an.