Podman ist modular aufgebaut. Viele Verhaltensweisen sind nicht im Binary kodiert, sondern in klar strukturierten Konfigurationsdateien hinterlegt. Diese Dateien definieren zentrale Aspekte wie Storage, Netzwerk, Runtimes oder Registry-Verhalten. Sie sind das Steuerwerk der Engine und bestimmen maßgeblich, wie Container auf einem System ausgeführt, gespeichert und bezogen werden.
Podman nutzt drei Kernkonfigurationen:
Jede dieser Dateien existiert sowohl systemweit als auch benutzerspezifisch. Das ermöglicht ein sauberes Trennen von administrativen Vorgaben und individuellen Entwicklerprofilen.
Typische Orte:
/etc/containers/storage.conf$HOME/.config/containers/storage.confDie Datei definiert Parameter für die Storage-Engine. Die wichtigsten:
overlay
oder fuse-overlayfsBeispiel:
[storage]
driver = "overlay"
graphroot = "/var/lib/containers/storage"
runroot = "/var/run/containers/storage"
[storage.options]
mountopt = "nodev,fsync=0"Storage entscheidet direkt über Performance und Stabilität:
graphroot reduzieren
Container-Startzeitenmountopt kann I/O-Verhalten optimierenfuse-overlayfs verfügbar
seinDie storage.conf ist damit eine zentrale Stellschraube für Startgeschwindigkeit, Platzverbrauch und I/O-Verhalten.
Standardpfade:
/etc/containers/registries.conf$HOME/.config/containers/registries.confDie Datei legt fest:
Beispiel:
unqualified-search-registries = ["docker.io", "quay.io"]
[[registry]]
location = "registry.internal.example.com"
insecure = false
blocked = falseEin Befehl wie:
podman run python:3.11führt zu einer Suche im definierten
unqualified-search-registries-Array. Die Reihenfolge
entscheidet über:
Wer ein eigenes Registry-Layout betreibt, sollte diese Datei bewusst gestalten.
TLS-Zertifikate für private Registries liegen unter:
/etc/containers/certs.d/<registry>/ca.crt
Damit können interne Registries sicher und ohne globale CA-Anpassungen betrieben werden.
Dies ist die umfangreichste Konfigurationsdatei. Sie definiert, wie Container standardmäßig ausgeführt werden.
Pfadstruktur:
/usr/share/containers/containers.conf/etc/containers/containers.conf$HOME/.config/containers/containers.confPodman liest in der Reihenfolge: user → system → global. Damit können einzelne Parameter gezielt überschrieben werden.
[engine]
runtime = "crun"
cgroup_manager = "systemd"
network_backend = "netavark"
events_logger = "journald"
[containers]
log_driver = "k8s-file"
pids_limit = 4096
ipcns = "private"
utsns = "private"crun ist in vielen Szenarien schneller und
ressourcenschonender, insbesondere bei vielen kurzlebigen Containern.
runc ist weit verbreitet und stabil, aber tendenziell
langsamer.
Netavark ist das moderne Podman-Netzwerkbackend. Es ist für daemonlose Engines optimiert und vermeidet die Komplexität von CNI-Plugins.
Erzeugt Logs im Kubernetes-kompatiblen Format und ist hilfreich, wenn Container lokal und im Cluster identisch ausgewertet werden sollen.
Sinnvoll, wenn Hostsysteme systemd nativ nutzen. Ermöglicht saubere Ressourcenverwaltung ohne manuelle Cgroup-Konfiguration.
Eine vereinfachte Übersicht:

Jede Datei steuert einen anderen Aspekt:
Diese Trennung macht das Verhalten vorhersehbar, reproduzierbar und klar administrierbar.
Viele Eigenschaften von Podman – Performance, Netzwerkverhalten, Kompatibilität, Startzeiten, Registryzugriffe, Ressourcenverwaltung – werden nicht durch Kommandos, sondern durch diese Konfigurationsdateien bestimmt.
Sie sind die Grundlage für:
Es sind nur drei Dateien, aber sie definieren nahezu alle zentralen Betriebsparameter einer Podman-Installation.