Startseite > Sonstige externe Pakete > docker volume

Anleitung für Docker Volume Befehle

Docker-Volumes sind der empfohlene Mechanismus, um Daten, die von Docker-Containern erzeugt und verwendet werden, dauerhaft zu speichern. Selbst wenn ein Container gelöscht wird, bleiben die im Volume gespeicherten Daten erhalten, sodass Sie Container ohne Datenverlust verwalten können. Diese Anleitung behandelt die Erstellung, Verwaltung und Löschung von Docker-Volumes.

Übersicht über Docker-Volumes

Ein Docker-Volume ist ein Verzeichnis oder eine Datei, die in einem bestimmten Pfad des Host-Dateisystems gemountet wird. Es ermöglicht die Verwaltung von Daten unabhängig vom Lebenszyklus des Containers, was flexibler und effizienter ist, als Daten mit dem Container-Image zu bündeln. Volumes können auch von mehreren Containern gleichzeitig gemeinsam genutzt werden.

Warum Volumes benötigt werden

Container sind von Natur aus flüchtig. Das bedeutet, dass beim Löschen eines Containers auch alle darin gespeicherten Daten verloren gehen. Um wichtige Daten wie Datenbanken, Logdateien oder vom Benutzer hochgeladene Dateien dauerhaft zu erhalten, müssen Sie Volumes verwenden. Volumes lösen dieses Problem und erhöhen die Stabilität und Flexibilität von containerbasierten Anwendungen.

Vorteile von Volumes

Die Hauptvorteile der Verwendung von Docker-Volumes sind:

  • Datenpersistenz: Daten bleiben auch nach dem Löschen des Containers erhalten.
  • Datenaustausch: Mehrere Container können dasselbe Volume gemeinsam nutzen, um auf Daten zuzugreifen.
  • Leistung: Es kann eine bessere I/O-Leistung bieten als Bind-Mounts.
  • Portabilität: Volumes sind nicht im Dockerfile enthalten, sodass Images leichter bleiben.
  • Backup/Wiederherstellung: Volumes können einfach gesichert und wiederhergestellt werden.

Wichtige Docker Volume Befehle

Sehen wir uns verschiedene Befehle zur effizienten Verwaltung von Docker-Volumes an. Versuchen Sie, jede Option zu kombinieren, um Volumes zu erstellen, zu überprüfen, zu löschen und mit Containern zu verbinden.

1. Erstellen und Auflisten von Volumes

2. Löschen von Volumes

3. Verbinden eines Volumes mit einem Container

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`docker volume` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Arten von Volumes

In Docker gibt es hauptsächlich zwei Arten von Mounts, um Daten mit Containern zu verbinden: Volumes und Bind-Mounts. Jede hat unterschiedliche Anwendungsfälle und Merkmale.

1. Volumes

Dies ist die bevorzugte Methode, um Daten in Docker dauerhaft zu speichern. Es wird in einem bestimmten Bereich des Host-Dateisystems gespeichert, der von Docker verwaltet wird.

  • Erstellung und Verwaltung: Sie werden über die Docker-CLI mit `docker volume`-Befehlen erstellt und verwaltet.
  • Ort: Sie werden im `/var/lib/docker/volumes/`-Pfad des Hosts gespeichert. Es wird nicht empfohlen, dass Benutzer direkt auf diesen internen Pfad zugreifen.
  • Merkmale: Sie sind unabhängig vom Lebenszyklus des Containers und können von mehreren Containern gemeinsam genutzt werden. Sie bieten Leistungsvorteile, insbesondere in Docker Desktop.

2. Bind-Mounts

Jeder Ort im Dateisystem des Hosts kann in einem Container gemountet werden. Dies ist nützlich, um direkt auf die Dateisystemstruktur des Hosts zuzugreifen.

  • Erstellung und Verwaltung: Sie sind direkt vom Dateisystem des Hosts abhängig und werden von Docker nicht explizit verwaltet.
  • Ort: Jedes Verzeichnis oder jede Datei im Host-Dateisystem kann in einen Container gemountet werden.
  • Merkmale: Sie sind hauptsächlich in Entwicklungsumgebungen nützlich, um Quellcode in einen Container zu mounten und Änderungen in Echtzeit zu reflektieren, oder wenn ein Container eine bestimmte Konfigurationsdatei vom Host verwenden muss.

Anwendungsbeispiele

Verstehen Sie, wie die Datenpersistenz verwaltet wird, indem Sie verschiedene Szenarien erkunden, in denen Docker-Volume-Befehle praktisch angewendet werden.

Erstellen und Verwenden eines benannten Volumes

docker volume create my_db_data
docker run -d --name my-mysql --mount source=my_db_data,target=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword mysql:latest

Erstellt ein Volume mit dem Namen 'my_db_data' und mountet es in den Datenspeicherpfad eines MySQL-Containers. Die DB-Daten bleiben auch nach dem Löschen des Containers erhalten.

Bind-Mount eines Host-Verzeichnisses

docker run -d --name my-nginx-dev -p 80:80 --mount type=bind,source=/path/to/my/app,target=/usr/share/nginx/html nginx:latest

Mountet das aktuelle Verzeichnis des Hosts (`/path/to/my/app`) in das Webdienstverzeichnis eines Nginx-Containers (`/usr/share/nginx/html`), sodass Änderungen an Dateien auf dem Host sofort im Container übernommen werden.

Alle ungenutzten Volumes löschen

docker volume prune

Gibt Speicherplatz frei, indem alle Docker-Volumes gelöscht werden, die mit keinem Container verbunden sind. Eine Bestätigungsnachricht wird angezeigt.

Erzwingen des Löschens eines bestimmten Volumes (Warnung)

docker volume rm -f old_volume

Löscht ein Volume namens 'old_volume' zwangsweise, unabhängig davon, ob es verwendet wird oder nicht. Dies sollte mit äußerster Vorsicht verwendet werden, da es zu Datenverlust führen kann.


Gleiche Kategorie Befehle