Permanente Daten mit Docker Volumes
Eine der zentralen Herausforderungen bei der Arbeit mit Docker-Containern ist die Problematik der Datenpersistenz. Standardmäßig sind Daten innerhalb eines Containers flüchtig, d. h. sie gehen verloren, wenn der Container gestoppt oder entfernt wird. Um dies zu überwinden, bietet Docker eine Funktion namens "Volumes", die es Ihnen ermöglicht, Daten außerhalb des Containers persistent zu speichern.
Was sind Docker Volumes?
Docker Volumes sind eine Möglichkeit, Daten unabhängig vom Container-Lebenszyklus zu speichern und zu verwalten. Volumes werden auf dem Host-Dateisystem (oder bei Remote-Volumes auf einem Remote-Host) gespeichert und können in einen oder mehrere Container eingebunden werden. Dadurch bleiben Daten erhalten, auch wenn der Container gestoppt, entfernt oder neu erstellt wird.
Arten von Docker Volumes
Docker unterstützt verschiedene Arten von Volumes:
- Benannte Volumes: Diese Volumes erhalten einen eindeutigen Namen und werden an einem von Docker verwalteten Ort auf dem Host-Dateisystem gespeichert.
- Bind Mounts: Bind Mounts ermöglichen es Ihnen, ein Verzeichnis auf dem Host-Dateisystem direkt in den Container zu mappen.
- Anonyme Volumes: Dies sind temporäre Volumes, die von Docker erstellt und verwaltet werden und beim Entfernen des Containers gelöscht werden.
Erstellen und Verwenden von Docker Volumes
Um ein benanntes Volume zu erstellen, können Sie den Befehl docker volume create
verwenden:
docker volume create my-volume
Sie können das Volume dann mit dem Flag -v
oder --mount
in einen Container einbinden:
docker run -v my-volume:/app ubuntu
oder
docker run --mount source=my-volume,target=/app ubuntu
Sichern und Wiederherstellen von Docker Volumes
Um ein Docker Volume zu sichern, können Sie den Befehl docker run
mit dem Flag --volumes-from
verwenden, um einen Container zu erstellen, der das Volume einbindet, und dann ein Werkzeug wie tar
verwenden, um eine Archivdatei der Volume-Daten zu erstellen:
docker run --rm --volumes-from my-container -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /app
Um das Volume wiederherzustellen, können Sie denselben tar
-Befehl verwenden, um die Daten zurück in das Volume zu extrahieren:
docker run --rm -v my-volume:/restore -v $(pwd):/backup ubuntu bash -c "cd /restore && tar xvf /backup/backup.tar --strip 1"
Durch das Verständnis und die Nutzung von Docker Volumes können Sie sicherstellen, dass Ihre Anwendungsdaten über den Lebenszyklus einzelner Container hinaus bestehen bleiben, was die Verwaltung und Wartung Ihrer Docker-basierten Anwendungen erleichtert.