Docker
Docker-Datenvolumen
Suche…
Einführung
Docker-Datenmengen bieten eine Möglichkeit, Daten unabhängig vom Lebenszyklus eines Containers zu speichern. Volumes bieten eine Reihe hilfreicher Funktionen wie:
Mounten eines Hostverzeichnisses innerhalb des Containers, Freigeben von Daten zwischen Containern mithilfe des Dateisystems und Beibehalten der Daten, wenn ein Container gelöscht wird
Syntax
- Docker-Volume [OPTIONEN] [BEFEHL]
Mounten eines Verzeichnisses vom lokalen Host in einen Container
Es ist möglich, ein Host-Verzeichnis mit der Befehlszeilenoption -v
oder --volume
an einen bestimmten Pfad in Ihrem Container --volume
. Im folgenden Beispiel wird /etc
auf dem Host in /mnt/etc
im Container /mnt/etc
:
(on linux) docker run -v "/etc:/mnt/etc" alpine cat /mnt/etc/passwd
(on windows) docker run -v "/c/etc:/mnt/etc" alpine cat /mnt/etc/passwd
Der Standardzugriff auf den Datenträger im Container lautet Lesen und Schreiben. Verwenden Sie das Suffix :ro
um ein Volume schreibgeschützt in einem Container :ro
.
docker run -v "/etc:/mnt/etc:ro" alpine touch /mnt/etc/passwd
Ein benanntes Volume erstellen
docker volume create --name="myAwesomeApp"
Die Verwendung eines benannten Datenträgers macht die Verwaltung von Datenträgern deutlich lesbarer. Es ist möglich, ein benanntes Volume mit dem oben angegebenen Befehl zu erstellen, aber es ist auch möglich, ein benanntes Volume innerhalb eines docker run
mithilfe der Befehlszeilenoption -v
oder --volume
zu erstellen:
docker run -d --name="myApp-1" -v="myAwesomeApp:/data/app" myApp:1.5.3
Das Erstellen eines benannten Volumes in diesem Formular ähnelt dem Mounten einer Hostdatei / eines Hostverzeichnisses als Volume, mit der Ausnahme, dass anstelle eines gültigen Pfads der Volume-Name angegeben wird. Nach der Erstellung können benannte Volumes für andere Container freigegeben werden:
docker run -d --name="myApp-2" --volumes-from "myApp-1" myApp:1.5.3
Nachdem Sie den obigen Befehl ausgeführt haben, wurde ein neuer Container mit dem Namen myApp-2
aus dem Image myApp:1.5.3
, der das mit myAwesomeApp
benannte Volume für myApp-1
. Das genannte Volume mit der Bezeichnung myAwesomeApp
wird unter /data/app
im myApp-2
Container myApp-2
, genauso wie es unter /data/app
im myApp-1
Container myApp-1
.