49 Bind-Mounts vs. Managed Volumes

Das Speichermodell containerisierter Anwendungen lässt sich grob in zwei Klassen unterteilen: Bind-Mounts und Managed Volumes (Named Volumes). Beide erfüllen denselben Zweck – Daten aus der flüchtigen Sandbox des Container-Layers zu befreien und persistent zu speichern. Aber sie tun dies mit völlig unterschiedlichen architektonischen Eigenschaften, Sicherheitsprofilen und Betriebskosten. Wer containerisierte Systeme produktionsnah betreibt, muss diese Unterschiede verstehen, denn die Wahl des falschen Speichermodells wirkt oft erst spät, dann aber massiv: in Form von Datenverlust, unkontrolliertem Wachstum, Rechtemissmatches oder unvorhergesagtem Verhalten beim Deployment.

49.1 Zwei Modelle, zwei Philosophien

Bind-Mounts koppeln Container direkt an das Host-Dateisystem. Managed Volumes trennen Container und Host durch einen kontrollierten Speicherbereich, der von Podman verwaltet wird.

Die Unterschiede lassen sich auf drei Achsen darstellen:

Diese Achsen bestimmen, wie Systeme sich verhalten, wenn man sie skaliert, wartet oder migriert.

49.2 Bind-Mounts: Direktverdrahtung in das Host-Dateisystem

Ein Bind-Mount verbindet ein Host-Verzeichnis 1:1 mit einem Pfad im Container:

podman run -v /srv/appdata:/data myapp

49.2.1 Stärken

Für Entwickler ist das besonders attraktiv: Code auf dem Host verändern und im Container sofort nutzen.

49.2.2 Schwächen

Ein klassisches Beispiel aus der Praxis: Ein Container erzeugt Daten mit UID 1000; ein anderer Container oder der Host erwartet UID 0 oder 1001. Das führt zu „permission denied“-Fehlern, die schwer zu debuggen sind.

49.2.3 Einsatzszenarien

Bind-Mounts eignen sich besonders für:

Für Produktionsdaten sind Bind-Mounts dagegen oft eine riskante Wahl.

49.3 Managed Volumes: kontrollierte Persistenz durch Podman

Managed Volumes – klassische Named Volumes – werden über Podman bereitgestellt:

podman volume create appdata
podman run -v appdata:/var/lib/app myapp

Podman erstellt dazu ein eigenes Volume-Verzeichnis im internen Storage-Backend.

49.3.1 Stärken

Managed Volumes folgen einer strukturierten Persistenzlogik: Sie bestehen unabhängig von Containern, sind klar adressierbar und werden durch podman volume ls, inspect und prune verwaltet.

49.3.2 Schwächen

49.3.3 Einsatzszenarien

Managed Volumes eignen sich besonders für:

Sie sind der „Goldstandard“ für alle Daten, die länger leben sollen als ein einzelner Container.

49.4 Storage-Topologie im Root- und Rootless-Modus

Der Speicherpfad unterscheidet sich je nach Modus:

49.4.1 Root-Modus

/var/lib/containers/storage/volumes/<name>/

Eigenschaften:

49.4.2 Rootless-Modus

~/.local/share/containers/storage/volumes/<name>/

Eigenschaften:

49.5 Security-Profile: wer darf wie viel?

49.5.1 Bind-Mounts

Bind-Mounts sollten niemals für untrusted Workloads verwendet werden.

49.5.2 Managed Volumes

Für sensible Daten sind Managed Volumes praktisch immer vorzuziehen.

49.6 Portabilität: das entscheidende Architekturmerkmal

Bind-Mounts sind unportabel:

Managed Volumes sind portabel:

Migrationen von Host zu Host oder zwischen Umgebungen sind mit Managed Volumes erheblich einfacher.

49.7 Performancevergleich

Bind-Mounts sind meist am schnellsten – sie umgehen overlayfs und liefern raw I/O. Managed Volumes sind schneller als writable Layer, aber leicht langsamer als Bind-Mounts.

In Benchmarks:

Modus I/O-Performance Latenz Stabilität
Bind-Mounts sehr hoch niedrig abhängig vom Host
Managed Volumes Root hoch niedrig sehr stabil
Managed Volumes Rootless mittel leicht erhöht stabil
Container-Layer niedrig hoch fragil

Der Performancegewinn durch Bind-Mounts wiegt selten die strukturellen Nachteile auf – aber für Buildjobs sind sie ideal.

49.8 Entscheidungsleitfaden: Bind-Mount oder Managed Volume?

49.8.1 Wähle Bind-Mounts, wenn:

49.8.2 Wähle Managed Volumes, wenn:

49.9 Eine gemeinsame Sicht: beide Modelle haben ihren Platz

Bind-Mounts sind das Werkzeug für maximale Flexibilität. Managed Volumes sind das Werkzeug für maximale Stabilität.

In einer realistischen Architektur existieren beide – aber in unterschiedlich starkem Umfang. Für langlebige, produktionsnahe Systeme gewinnt fast immer das Managed Volume. Für Entwickler-Workflows und schnelle Iterationen bleibt der Bind-Mount unersetzlich.