Funktionen von Docker-Volumes
- Gemeinsame Nutzung von Volume-Daten und Speicher zwischen mehreren Containern und Host-Dateisystemen.
- Container vom Lager entkoppeln.
- Löscht keine enthaltenen Daten beim Löschen des Containers.
- Daten einfach sichern, wiederherstellen und migrieren.
In diesem Tutorial erklären wir, was ein Docker-Volume ist und wie man es verwendet, sowie wie man ein Volume in Docker einhängt.
Bedarf
- Ein Linux-System mit installiertem Docker.
- Ein Root-Passwort ist konfiguriert.
Grundlegende Syntax von Docker Volume
Sie können den Befehl „docker volume“ verwenden, um alle verfügbaren Optionen mit Volume anzuzeigen:
Docker-VolumeSie sollten die folgende Ausgabe sehen, nachdem Sie den obigen Befehl eingegeben haben:
Verwendung: docker volume COMMANDVolumes verwalten
Befehle:
erstellen Erstellen Sie ein Volume
inspect Detaillierte Informationen zu einem oder mehreren Volumes anzeigen
ls Bände auflisten
prune Alle nicht verwendeten lokalen Volumes entfernen
rm Ein oder mehrere Volumes entfernen
Führen Sie 'docker volume COMMAND --help' aus, um weitere Informationen zu einem Befehl zu erhalten.
Erstellen Sie ein Volume
Um ein Datenvolume zu erstellen, müssen Sie zunächst ein Datenvolume auf dem Docker-Host erstellen und das Volume an den Container anhängen.
Sie können ein Docker-Volume mit dem Befehl „docker volume createcker erstellen.” Verwenden Sie beispielsweise den folgenden Befehl, um ein neues Docker-Volume namens myvolume zu erstellen:
docker volume erstellen myvolumeSie sollten die folgende Ausgabe sehen:
meinvolumenSie können Ihr vorhandenes Volume mit dem folgenden Befehl auflisten:
Docker-Volume lsSie sollten die folgende Ausgabe sehen:
FAHRERLAUTSTÄRKE NAMElokal c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
lokales myvolume
Wenn Sie weitere Informationen zum Volumen anzeigen möchten, führen Sie den folgenden Befehl aus:
Docker inspizieren myvolumeSie sollten die folgende Ausgabe erhalten, nachdem Sie den obigen Befehl ausgeführt haben:
["Erstellt bei": "2020-09-12T04:51:31Z",
"Treiber": "lokal",
"Labels": ,
"Mountpoint": "/var/lib/docker/volumes/myvolume/_data",
"Name": "myvolume",
"Optionen": ,
"Bereich": "lokal"
]
Mounten eines Volumes
An diesem Punkt haben Sie ein Volume namens myvolume. In diesem Beispiel erstellen Sie einen Container und mounten ein myvolume an den Container.
Sie können die Option -mount verwenden, um das Volume zu mounten. Die grundlegende Syntax zum Mounten des Volumes in den Container ist unten dargestellt:
docker run --mount source=volume-name,destination=path-inside-container docker-imagesUm beispielsweise einen Ubuntu-Container zu erstellen und das myvolume in den Container einzubinden, führen Sie den folgenden Befehl aus:
docker run -it --name=volumecontainer --mount source=myvolume,destination=/data ubuntuDieser Befehl zieht das Ubuntu-Image aus dem Docker Hub, startet den Container im interaktiven Modus mit dem Namen volumecontainer und mountet den myvolume-Container in /data im Verzeichnis /data:
Bild 'ubuntu:latest' kann lokal nicht gefunden werdenneuestes: Ziehen aus Bibliothek/Ubuntu
54ee1f796a1e: Ziehen abgeschlossen
f7bfea53ad12: Ziehen abgeschlossen
46d371e02073: Ziehen abgeschlossen
b66c17bbf772: Ziehen abgeschlossen
Zusammenfassung: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Neueres Image für ubuntu:latest . heruntergeladen
root@06a477c4e444:/#
Sie können das gemountete Volume mit dem folgenden Befehl überprüfen:
[email protected]:/# lsSie sollten das Datenverzeichnis in der folgenden Ausgabe sehen:
bin boot data dev etc home lib lib32 lib64 libx32 media mntopt proc root ausführen sbin srv sys tmp usr var
Jetzt erstellen wir eine Beispieldatei namens file.txt im Verzeichnis /data mit dem folgenden Befehl:
echo "Dies ist eine Testdatei!" > /data/file.TXTBeenden Sie den Container mit dem folgenden Befehl:
AusfahrtStarten Sie denselben Container erneut mit dem folgenden Befehl:
Docker-Container-StartvolumencontainerAls nächstes hängen Sie den laufenden Container mit dem folgenden Befehl an:
docker exec -it volumecontainer /bin/bashÜberprüfen Sie, ob Ihre Datei.txt ist mit folgendem persistent:
Katzendaten/Datei.TXTSie sollten die folgende Ausgabe erhalten, nachdem Sie den obigen Befehl eingegeben haben:
Dies ist eine Testdatei!
Daten zwischen Containern teilen
Sie können auch Daten zwischen mehreren Containern mit Docker-Volume teilen.
Wie Sie wissen, haben wir mit diesem Volume ein Volume namens myvolume und einen neuen Container namens volumecontainer erstellt. Wir haben auch eine Datei namens file erstellt.txt im Volumen.
Jetzt erstellen wir mit dem folgenden Befehl einen weiteren Container namens volumecontainer1 mit demselben myvolume-Volume:
docker run -it --name=volumecontainer1 --mount source=myvolume,destination=/data ubuntuFühren Sie den Befehl ls wie unten gezeigt aus:
lsSie sollten das Datenverzeichnis in der folgenden Ausgabe sehen:
bin boot data dev etc home lib lib32 lib64 libx32media mnt opt proc root ausführen sbin srv sys tmp usr var
Führen Sie den folgenden Befehl aus, um die Datei zu überprüfen.TXT:
Katze /data/file.TXTSie sollten denselben Inhalt sehen, den Sie im vorherigen Container erstellt haben:
Dies ist eine Testdatei!
Verzeichnis als Volume mounten
Sie können das Verzeichnis in Ihrem Docker-Hostsystem als Volume verwenden und es in den Container einhängen. Sie können auch die Option -v verwenden, um dasselbe zu erreichen, wie unten gezeigt:
docker run -v "directory_name":volume_name docker_imageErstellen Sie ein Verzeichnis namens /data innerhalb des Docker-Hosts mit dem folgenden Befehl:
mkdir /DatenErstellen Sie als Nächstes einige Dateien im Verzeichnis /Data:
cd /DatenTouch-Datei1.txt-Datei2.txt-Datei3.TXT
Erstellen Sie mit dem folgenden Befehl einen neuen Container unter Verwendung des /Data-Verzeichnisses als Volume:
docker run -it --name=data1 -v /Data:/Data ubuntuDieser Befehl erstellt einen neuen Container und mountet das Volume mit dem Namen /Data.
Führen Sie den folgenden Befehl aus, um den Inhalt des Verzeichnisses /Data zu überprüfen:
ls -l /Daten/Sie sollten alle Dateien sehen, die wir zuvor im Hostsystem erstellt haben, wie unten gezeigt:
insgesamt 0-rw-r--r-- 1 root root 0 Sep 12 05:41 file1.TXT
-rw-r--r-- 1 root root 0 Sep 12 05:41 file2.TXT
-rw-r--r-- 1 root root 0 Sep 12 05:41 file3.TXT
Docker-Volume entfernen
Sie können das Volume einfach mit der folgenden Syntax löschen oder entfernen:
Docker-Volume rm Volume-NameUm beispielsweise das Volume mit dem Namen myvolume zu entfernen, führen Sie den folgenden Befehl aus:
docker volume rm myvolumeSie sollten die folgende Fehlermeldung erhalten:
Fehlerantwort vom Daemon: myvolume entfernen:Datenträger wird verwendet - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Dies liegt daran, dass Ihr Volume vom Container verwendet wird. Sie müssen also den Behälter anhalten und entfernen, bevor Sie das Volume entfernen.
Führen Sie den folgenden Befehl aus, um den Container zu stoppen und zu entfernen:
docker container stop volumecontainer volumecontainer1Docker-Container rm volumecontainer volumecontainer1
Jetzt können Sie die Lautstärke ganz einfach entfernen.
Fazit
In der obigen Anleitung haben Sie erfahren, was Docker-Volume ist, wie man es erstellt und wie man es in den Container einbindet. Sie haben auch gelernt, wie Sie mithilfe des Volumes Daten zwischen mehreren Containern freigeben.