Docker

Docker-Volumes, Mounten und mehr

Docker-Volumes, Mounten und mehr
Wenn Sie in Docker einen Container erstellen, gibt es einen bestimmten Ort, an dem die Daten für den Container gespeichert werden. Wenn Sie keinen Speicherort für diese Daten angeben, werden sie im Container gespeichert stored. Beim Löschen des Containers gehen auch die Daten verloren. Wenn Sie jedoch an Unternehmensprojekten arbeiten, können Sie einen Container entfernen, aber die Daten beibehalten, um Datenverlust zu vermeiden. Sie können diese Daten verwenden, um weitere Container zu erstellen und die Daten zwischen diesen Containern freizugeben. Hier kommt Docker-Volume ins Spiel.

Funktionen von Docker-Volumes

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

Grundlegende Syntax von Docker Volume

Sie können den Befehl „docker volume“ verwenden, um alle verfügbaren Optionen mit Volume anzuzeigen:

Docker-Volume

Sie sollten die folgende Ausgabe sehen, nachdem Sie den obigen Befehl eingegeben haben:

Verwendung: docker volume COMMAND
Volumes 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 myvolume

Sie sollten die folgende Ausgabe sehen:

meinvolumen

Sie können Ihr vorhandenes Volume mit dem folgenden Befehl auflisten:

Docker-Volume ls

Sie sollten die folgende Ausgabe sehen:

FAHRERLAUTSTÄRKE NAME
lokal c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
lokales myvolume

Wenn Sie weitere Informationen zum Volumen anzeigen möchten, führen Sie den folgenden Befehl aus:

Docker inspizieren myvolume

Sie 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-images

Um 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 ubuntu

Dieser 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 werden
neuestes: 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]:/# ls

Sie sollten das Datenverzeichnis in der folgenden Ausgabe sehen:

bin boot data dev etc home lib lib32 lib64 libx32 media mnt
opt 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.TXT

Beenden Sie den Container mit dem folgenden Befehl:

Ausfahrt

Starten Sie denselben Container erneut mit dem folgenden Befehl:

Docker-Container-Startvolumencontainer

Als 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.TXT

Sie 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 ubuntu

Führen Sie den Befehl ls wie unten gezeigt aus:

ls

Sie sollten das Datenverzeichnis in der folgenden Ausgabe sehen:

bin boot data dev etc home lib lib32 lib64 libx32
media 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.TXT

Sie 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_image

Erstellen Sie ein Verzeichnis namens /data innerhalb des Docker-Hosts mit dem folgenden Befehl:

mkdir /Daten

Erstellen Sie als Nächstes einige Dateien im Verzeichnis /Data:

cd /Daten
Touch-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 ubuntu

Dieser 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-Name

Um beispielsweise das Volume mit dem Namen myvolume zu entfernen, führen Sie den folgenden Befehl aus:

docker volume rm myvolume

Sie 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 volumecontainer1
Docker-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.

Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...
Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...