Speichermodelle vergleichen
| Frage | Benanntes Volume | Bind-Mount |
|---|---|---|
| Wer bestimmt den Speicherort? | Docker verwaltet ihn. | Du gibst einen Host-Pfad an. |
| Typischer Einsatz | Persistente Anwendungsdaten. | Quellcode oder Host-Konfiguration. |
| Auf einem neuen Host? | Volume erstellen oder wiederherstellen. | Pfad und Dateien bereitstellen. |
Beide können das Entfernen eines Containers überstehen. Keines ist automatisch ein Backup. Bei einem entfernten Docker-Daemon liegt die Bind-Quelle auf dessen Host, nicht unbedingt auf deinem Rechner.
Persistenz mit einem Volume beobachten
Wähle einen neuen Volume-Namen. Beim ersten Lauf wird möglicherweise das Alpine-Image für die Übung heruntergeladen.
docker volume create devsheet-volume-demo
docker run --rm --mount type=volume,source=devsheet-volume-demo,target=/data alpine:3.22 sh -c "echo hello > /data/note.txt"
docker run --rm --mount type=volume,source=devsheet-volume-demo,target=/data alpine:3.22 cat /data/note.txtErwartet wird hello beim zweiten Lauf. --rm hat den ersten Container entfernt, aber das ausdrücklich benannte Volume behält die Datei. Das Volume bleibt bis zu seiner bewussten Löschung bestehen.
Ein Host-Verzeichnis schreibgeschützt einbinden
Erstelle in Bash ein neues Übungsverzeichnis. Bei dieser Mount-Syntax muss die Quelle bereits vorhanden sein.
mkdir devsheet-bind-demo
printf "hello\n" > devsheet-bind-demo/note.txt
docker run --rm --mount "type=bind,source=$(pwd)/devsheet-bind-demo,target=/data,readonly" alpine:3.22 cat /data/note.txtErwartet wird hello aus der Host-Datei. readonly verhindert Schreibzugriffe über diesen Mount. Docker Desktop benötigt möglicherweise eine Freigabe für das Verzeichnis. Das Host-Verzeichnis bleibt bestehen.
Mounts und Backups prüfen
Ein Mount über einem nicht leeren Container-Verzeichnis verdeckt dessen bisherige Inhalte für die Dauer des Mounts. Prüfe den Pfad im Abschnitt Mounts von docker inspect <container>.
Ein beschreibbarer Bind-Mount erlaubt Änderungen an den betreffenden Host-Dateien. Begrenze das freigegebene Verzeichnis. Verwende für Datenbanken geeignete Backups; das Kopieren laufend genutzter Dateien ohne Konsistenzprüfung reicht nicht aus.