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.