Praktische Szenarien und Fehlerbehebung
Praktische Szenarien
Szenario 1: Datenfreigabe zwischen Containern
Angenommen, Sie haben zwei Container, web-app
und db-app
, die Daten gemeinsam nutzen müssen. Sie können ein benanntes Volume erstellen und es an beide Container mounten:
## Erstellen eines benannten Volumes
docker volume create shared-data
## Starten des web-app Containers und Mounten des Volumes
docker run -d --name web-app --mount source=shared-data,target=/app my-web-app
## Starten des db-app Containers und Mounten des gleichen Volumes
docker run -d --name db-app --mount source=shared-data,target=/data my-db-app
Jetzt können beide Container auf die Daten in den Verzeichnissen /app
bzw. /data
zugreifen und diese ändern.
Szenario 2: Sichern und Wiederherstellen eines Volumes
Um ein Docker-Volume zu sichern, können Sie den Befehl docker run
verwenden, um einen Container zu erstellen, der die Inhalte des Volumes in eine TAR-Datei kopiert:
## Sichern des Volumes
docker run --rm --volumes-from my-container -v $(pwd):/backup busybox tar cvf /backup/my-volume.tar /app
Um das Volume wiederherzustellen, können Sie den gleichen Ansatz verwenden, diesmal jedoch die TAR-Datei extrahieren:
## Wiederherstellen des Volumes
docker run --rm -v my-volume:/restored -v $(pwd):/backup busybox sh -c "cd /restored && tar xvf /backup/my-volume.tar --strip 1"
Fehlerbehebung
Probleme mit Volume-Berechtigungen
Wenn Sie Probleme mit Dateiberechtigungen beim Zugriff auf ein Volume haben, können Sie Folgendes versuchen:
- Stellen Sie sicher, dass der Benutzer, der den Docker-Daemon ausführt, die notwendigen Berechtigungen hat, um auf den Mount-Punkt des Volumes auf dem Host zuzugreifen.
- Wenn ein Container als Nicht-Root-Benutzer ausgeführt wird, stellen Sie sicher, dass der Benutzer die korrekten Berechtigungen hat, um auf die Inhalte des Volumes innerhalb des Containers zuzugreifen.
- Verwenden Sie das Flag
--user
beim Starten des Containers, um einen Benutzer mit den entsprechenden Berechtigungen anzugeben.
Volume verschwindet nach Containerentfernung
Wenn ein Volume nach dem Entfernen eines Containers verschwindet, handelt es sich wahrscheinlich um ein anonymes Volume. Um dies zu vermeiden, sollten Sie stattdessen benannte Volumes verwenden, die auch nach dem Entfernen des Containers bestehen bleiben.
## Verwenden Sie ein benanntes Volume
docker run -d --name my-container --mount source=my-volume,target=/app my-image
Durch die Anwendung dieser praktischen Szenarien und Tipps zur Fehlerbehebung können Sie die Inhalte von Remote-Docker-Volumes effektiv verwalten und überprüfen.