Der essentielle Leitfaden zu Docker Volume Management-Befehlen
Lernen Sie Docker-Volume-Befehle zum Erstellen, Auflisten, Inspizieren, Einhängen, Sichern, Entfernen und Bereinigen persistenter Daten.
Der wesentliche Leitfaden zu Docker-Volume-Verwaltungsbefehlen
Docker-Volume-Verwaltungsbefehle werden wichtig, sobald Ihr Container Daten schreibt, die Ihnen wichtig sind. Die beschreibbare Schicht eines Containers verschwindet, wenn Sie den Container entfernen, aber ein Docker-Volume kann Datenbankdateien, Uploads, Cache-Daten oder Anwendungszustände über Container-Neuerstellungen hinweg bewahren.
Dieser Leitfaden zeigt Ihnen die wichtigsten docker volume-Befehle, wie Sie Volumes an Container anhängen und wo Bereinigungsbefehle Sie überraschen können.
Was sind Docker-Volumes?
Docker-Volumes sind von Docker verwaltete Speicherobjekte. Sie befinden sich außerhalb der beschreibbaren Schicht des Containers, normalerweise an einem von Docker verwalteten Ort auf dem Host, wenn Sie den Standardtreiber local verwenden. Ein benanntes Volume bleibt verfügbar, nachdem Sie den Container, der es verwendet hat, stoppen, entfernen oder neu erstellen.
Volumes sind nützlich, weil sie Folgendes bieten:
- Persistenz: Daten überleben den Austausch von Containern.
- Isolation: Anwendungsdaten sind vom Image und der beschreibbaren Schicht getrennt.
- Treiberunterstützung: Volume-Treiber können lokale Festplatten, Netzwerkspeicher oder plattformspezifische Speicher-Backends verwenden.
- Betriebliche Klarheit: Benannte Volumes sind einfacher zu inspizieren, zu sichern und wiederzuverwenden als anonyme Container-Schichten.
Wichtige docker volume-Befehle
Der Befehl docker volume ist die Hauptschnittstelle zum Erstellen, Auflisten, Inspizieren und Löschen von Volumes.
docker volume create
Ein benanntes Volume erstellen:
docker volume create my-app-data
Ein Volume mit einem von Docker generierten Namen erstellen:
docker volume create
Sie können auch Treiberoptionen übergeben, wenn Sie ein nicht standardmäßiges Setup verwenden:
docker volume create --driver local my-app-data
docker volume ls
Volumes auflisten:
docker volume ls
Nur Namen anzeigen:
docker volume ls -q
Verwaiste Volumes filtern:
docker volume ls --filter dangling=true
dangling=true bedeutet, dass Docker das Volume nicht als von einem Container referenziert sieht. Es bedeutet nicht, dass die Daten unwichtig sind.
docker volume inspect
Ein Volume inspizieren:
docker volume inspect my-app-data
Für ein lokales Volume sieht die Ausgabe ähnlich aus wie diese:
[
{
"CreatedAt": "2026-05-23T10:00:00Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/my-app-data/_data",
"Name": "my-app-data",
"Options": null,
"Scope": "local"
}
]
Der Mountpoint ist nützlich für die Fehlersuche, aber vermeiden Sie es, dort direkt Dateien zu bearbeiten, während Container das Volume verwenden. Lassen Sie die Anwendung oder einen kontrollierten Wartungscontainer die Daten schreiben.
docker volume rm
Ein oder mehrere Volumes entfernen:
docker volume rm my-app-data
Docker wird ein Volume nicht entfernen, solange noch ein Container darauf verweist, selbst wenn dieser Container gestoppt ist. Finden und entfernen Sie diese Container zuerst:
docker ps -a --filter volume=my-app-data
docker rm <container-name-or-id>
docker volume rm my-app-data
Dieser Befehl löscht die Volume-Daten. Sichern Sie sie zuerst, wenn die Daten wichtig sind.
docker volume prune
Prune entfernt ungenutzte lokale Volumes. In aktuellen Docker-Versionen entfernt docker volume prune standardmäßig ungenutzte anonyme Volumes. Verwenden Sie --all, wenn Sie auch ungenutzte benannte Volumes entfernen möchten.
Ungenutzte anonyme Volumes entfernen:
docker volume prune
Die Bestätigungsaufforderung überspringen:
docker volume prune --force
Alle ungenutzten lokalen Volumes entfernen, einschließlich benannter Volumes:
docker volume prune --all
Verwenden Sie Labels, um die Bereinigung sicherer zu machen:
docker volume create --label app=myapp myapp-cache
docker volume prune --filter label=app=myapp
Prune-Operationen löschen Daten dauerhaft. Überprüfen Sie, was ein Volume enthält, bevor Sie benannte Anwendungsdaten bereinigen.
Volumes mit Containern einhängen
Hängen Sie Volumes an, wenn Sie einen Container erstellen. Docker kann das benannte Volume automatisch erstellen, wenn es noch nicht existiert.
Verwendung von -v
docker run --name my-postgres \
-v pgdata:/var/lib/postgresql/data \
-d postgres
Hier ist pgdata der Volume-Name und /var/lib/postgresql/data der Pfad innerhalb des Containers.
Verwendung von --mount
--mount ist expliziter und in Skripten leichter lesbar:
docker run --name my-redis \
--mount type=volume,source=redisdata,target=/data \
-d redis
Beide Formen sind gültig. Verwenden Sie --mount, wenn Sie eine klarere Schlüssel-Wert-Syntax wünschen, insbesondere mit zusätzlichen Mount-Optionen.
Ein Volume sichern und wiederherstellen
Docker-Volumes sind persistenter Speicher, aber keine Backups. Ein einfaches Backup-Muster besteht darin, einen temporären Container auszuführen, der das Volume einhängt und ein Archiv in das aktuelle Verzeichnis schreibt:
docker run --rm \
-v my-app-data:/data:ro \
-v "$PWD":/backup \
alpine \
tar czf /backup/my-app-data.tgz -C /data .
Wiederherstellung in ein leeres Volume:
docker volume create my-app-data-restored
docker run --rm \
-v my-app-data-restored:/data \
-v "$PWD":/backup \
alpine \
tar xzf /backup/my-app-data.tgz -C /data
Für Datenbanken bevorzugen Sie datenbankeigene Sicherungswerkzeuge, wenn Konsistenz wichtig ist. Ein Dateisystemarchiv eines Live-Datenbank-Volumes ist möglicherweise nicht sicher, es sei denn, die Datenbank wird gestoppt oder unterstützt diese Sicherungsmethode.
Best Practices für die Docker-Volume-Verwaltung
- Verwenden Sie benannte Volumes für Daten, die Sie behalten möchten.
- Kennzeichnen Sie Volumes, die zu einer Anwendung oder Umgebung gehören.
- Inspizieren Sie Volumes, bevor Sie sie löschen oder bereinigen.
- Sichern Sie wichtige Volumes außerhalb des Docker-Hosts.
- Vermeiden Sie es, unersetzliche Daten nur in einem anonymen Volume zu speichern.
- Testen Sie Wiederherstellungen, nicht nur Backups.
- Verwenden Sie Volume-Treiber, wenn Sie Speicher außerhalb des lokalen Docker-Hosts benötigen.
Fazit
Verwenden Sie benannte Docker-Volumes für Zustände, die Sie behalten möchten, inspizieren Sie sie, bevor Sie etwas löschen, und behandeln Sie prune als einen Bereinigungsbefehl mit echtem Datenverlustrisiko. Der alltägliche Arbeitsablauf ist einfach: Erstellen Sie das Volume oder lassen Sie Docker es erstellen, hängen Sie es mit docker run ein, inspizieren Sie es bei der Fehlersuche, sichern Sie es, wenn es wichtig ist, und entfernen Sie es erst, nachdem kein Container mehr darauf verweist.