Volumes bilden die Speichergrundlage containerisierter Anwendungen.
Sie bestimmen, welche Daten Container behalten dürfen, welche isoliert
bleiben und welche mit anderen Containern oder dem Host geteilt werden.
Podman implementiert Volumes vollständig daemonlos; der gesamte
Persistenzmechanismus basiert auf containers/storage und
greift – je nach Rootless- oder Root-Modus – auf unterschiedliche
Mount-Techniken zurück. Für produktionsnahe Architekturen ist das
Verständnis dieser Mechanismen essenziell, denn falsche Volume-Modelle
gehören zu den häufigsten Ursachen für Datenverlust, Inkonsistenzen oder
fehlende Wiederholbarkeit.
Ohne Volumes speichern Container Daten im writable Layer. Dieser Layer ist:
Das flüchtige Dateisystem ist ideal für stateless Services, aber fatal für Datenbanken, Queues, Caches, Buildprozesse oder alles, was Daten zwischen Containerstarts behalten muss.
Volumes lösen dieses Problem, indem sie Speicherbereiche vom Container-Dateisystem trennen und dauerhaft im Host-Dateisystem persistieren.
Podman kennt drei primäre Volume-Arten:
Jeder Typ deckt ein anderes Architekturprofil ab.
Named Volumes werden von Podman verwaltet und befinden sich im Volume-Pfad des Storages:
/var/lib/containers/storage/volumes/<name>~/.local/share/containers/storage/volumes/<name>Ein Volume wird erzeugt über:
podman volume create data
Einsatz im Container:
podman run -v data:/var/lib/db mydb
Eigenschaften:
Named Volumes eignen sich hervorragend für persistente Datenhaltung in Produktions- und CI-Workflows.
Bind Mounts verbinden ein Host-Verzeichnis mit einem Container-Verzeichnis:
podman run -v /srv/data:/var/lib/db mydb
Eigenschaften:
Bind Mounts sind das Äquivalent zur „festen Verdrahtung“ zwischen Container und Host. Sie liefern Flexibilität, sind aber weniger portabel als Named Volumes.
Ein Container erzeugt ein anonymes Volume, wenn ein Volume-Mount angegeben wird, ohne einen Namen zuzuweisen:
podman run -v /var/lib/db mydb
Podman erzeugt dann intern ein zufällig benanntes Volume. Es bleibt bestehen, bis:
podman volume prune oder explizite Deletes ausgeführt
werdenDiese Volumes sind praktisch für temporäre Arbeitslasten, aber riskant für langfristige Datenhaltung, da sie schwer auffindbar sind.
Das Zusammenspiel von Container und Volume lässt sich einfach darstellen:

Daten im Container-Layer: flüchtig Daten im Volume: persistent Daten im Image: unveränderlich
Diese Trennung erzeugt ein dreistufiges Persistenzmodell, das Sicherheit und Reproduzierbarkeit strukturiert.
Im Rootless-Modus ist Volume-Ownership nicht trivial. Podman setzt User-Namespace-Mappings ein:
Das bedeutet:
Das erklärt klassische Fehlermeldungen: „permission denied“ beim Schreiben in rootless Volumes.
Best Practice:
Volumes sind damit nicht nur Speicherorte, sondern auch Ownership-Domänen.
Die Speicherperformance variiert stark:
Podman unterstützt tmpfs-Mounts:
podman run --tmpfs /cache:size=512m ...
Volumes leben unabhängig von Containern. Ein häufiger Fehler in der Praxis:
Der Zustand eines Systems kann man sauber inspizieren:
podman volume ls
podman volume inspect data
Für automatische Bereinigung:
podman volume prune
Aber Vorsicht: prune ist destruktiv.
Einige Muster haben sich etabliert:
Typische Fehlerbilder und ihre Ursachen:
In containerisierten Systemen ist die Persistenzfrage nicht sekundär, sondern ein Strukturthema. Volumes entscheiden darüber:
Volumes sind keine Nebenfunktion – sie sind die tragende Grundlage jeder Anwendung, die Daten über die Lebensdauer eines Containers hinaus benötigt.