Bei daemonlosen Engines wie Podman ist die Statusabfrage kein Blick
in die Zwischenspeicherung eines Daemons, sondern eine unmittelbare
Analyse des tatsächlichen Systemzustands. Informationen zu Laufzeit,
Ressourcen, Mounts oder Netzwerken stammen direkt aus Namespaces,
Cgroups, Logfiles und dem Dateisystem. Das macht inspect
und die dazugehörigen Statusbefehle zu präzisen Diagnosewerkzeugen –
deutlich transparenter als in Umgebungen, in denen ein Daemon den
Zustand abstrahiert oder zwischenspeichert.
podman inspect liefert eine vollständige Darstellung
eines Containerzustands im JSON-Format. Die Ausgabe umfasst:
Beispiel:
podman inspect mycontainerDie Ausgabe kann leicht mehrere hundert Zeilen umfassen. Sie bildet nahezu alles ab, was Podman intern zur Laufzeit verwendet.
Der State-Block zeigt den aktuellen Containerstatus:
Running: true/falseStartedAt, FinishedAt)ExitCodePid (sichtbar im Host-PID-Namespace)OOMKilledConmonPidOOMKilled ist ein wertvoller Indikator, wenn ein
Container durch Speicherlimits beendet wurde.
Definiert zentrale Laufzeitparameter:
/dev/...)Hier finden sich die typischen Ursachen für Startprobleme, Ressourcenengpässe oder fehlende Device-Zugriffe.
Zeigt an:
Bei Dateizugriffsproblemen ist dies die erste Stelle, an der man prüft, ob Mounts wirklich dort gelandet sind, wo man sie erwartet hat.
Beinhaltet:
Netzwerkfehler – insbesondere zwischen mehreren Containern – lassen sich fast vollständig hier nachvollziehen.
Der ursprüngliche Containerentwurf:
Wenn ein Container „etwas anderes tut als erwartet“, liegt der Grund häufig in diesem Abschnitt.
Standardbefehlt zur Übersicht über laufende Container:
podman psListet:
Erweiterte Ansicht:
podman ps --size --nsliefert zusätzlich:
podman top zeigt Prozesse eines Containers in
Echtzeit:
podman top mycontainerDer Befehl kann Felder gezielt abfragen:
podman top mycontainer user,pid,pcpu,pmem,etimeIdeal für Performanceanalysen und Debugging von Lastspitzen.
podman stats liefert Live-Metriken:
Beispiel:
podman stats --no-stream mycontainerDas Format ermöglicht kontinuierliche Überwachung oder Integration in externe Tools.
Auch Netzwerke können inspiziert werden:
podman network inspect mynetAngezeigt werden:
Ideal zur Fehlersuche in Multi-Container-Netzwerken und isolierten Testumgebungen.
Podman besitzt keinen Daemon, stellt aber über conmon Ereignisse bereit:
podman eventsTypische Events:
Diese Ereignisse bilden exakt ab, was im System passiert – ohne Intermediärschicht.
Einige typische Beispiele:
podman inspect --format '{{.State.ExitCode}}' mycontainerDer Exit-Code gibt den ersten Hinweis.
podman inspect --format '{{.HostConfig.Devices}}' mycontainerIst /dev/... nicht vorhanden, war der Startbefehl
fehlerhaft.
podman inspect --format '{{.Mounts}}' mycontainerBind-Mounts werden häufig falsch gesetzt oder mit unerwartetem Modus
(ro statt rw) versehen.
podman inspect mycontainer | jq '.NetworkSettings.Networks'Zeigt IP-Zuordnungen, Netzwerknamen und mögliche Konflikte.
podman inspect bildet exakt das ab, was im System
existiert – nicht die Sicht eines Daemons, sondern die tatsächlichen
Strukturen:
/var/lib/containersDamit ist inspect weniger ein Informationsbefehl als ein
präziser Spiegel der Realität des Containers. Der Befehl ist ein
unverzichtbares Werkzeug für das Debugging, für tiefere Systemanalysen
und für jede Form von betrieblichen Abläufen rund um Container auf
Einzelhosts.