GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Docker-Volumes:Erstellen und loslegen

Einführung

Docker-Volumes sind weit verbreitete und nützliche Tools, um die Datenpersistenz bei der Arbeit in Containern sicherzustellen. Sie sind eine bessere Alternative als das Kompilieren zusätzlicher beschreibbarer Ebenen, die die Docker-Image-Größe erhöhen.

In diesem Tutorial erfahren Sie anhand von praktischen Beispielen, wie Sie Docker-Volumes verwenden.

Was sind Docker-Volumes?

Docker-Volumes sind Dateisysteme, die auf Docker-Containern gemountet sind, um die vom laufenden Container generierten Daten aufzubewahren.

Die Volumes werden unabhängig vom Containerlebenszyklus auf dem Host gespeichert. Dies ermöglicht Benutzern, Daten zu sichern und Dateisysteme einfach zwischen Containern zu teilen.

Erste Schritte mit Docker-Volumes

Es gibt verschiedene Möglichkeiten, ein Docker-Volume zu mounten, während ein Container gestartet wird. Benutzer können zwischen -v entscheiden und --mount Flags, die dem docker run hinzugefügt werden Befehl.

Dieser Artikel zeigt Beispiele für die Verwendung beider Flags.

So erstellen Sie ein Docker-Volume

Um ein Docker-Volume zu erstellen, verwenden Sie den Befehl:

docker volume create [volume_name]

Docker erstellt automatisch ein Verzeichnis für das Volume auf dem Host unter /var/lib/docker/volume/ Weg. Sie können dieses Volume jetzt in einem Container bereitstellen, um die Datenpersistenz und die gemeinsame Nutzung von Daten zwischen mehreren Containern sicherzustellen.

Zum Beispiel, um ein Volume unter dem Namen Daten zu erstellen , würden Sie den Befehl ausführen:

docker volume create data

Docker-Volumes auflisten

Um zu überprüfen, ob Sie erfolgreich ein Docker-Volume erstellt haben, fordern Sie Docker auf, alle verfügbaren Volumes aufzulisten mit:

docker volume list

Die Ausgabe zeigt eine Liste von Volumes mit Angabe ihres Speicherorts (DRIVER ) und deren VOLUME NAME . In der Abbildung unten sehen Sie die Volume-Daten im vorherigen Abschnitt erstellt.

Inspizieren von Docker-Volumes

Um weitere Informationen zu einem Docker-Volume anzuzeigen, verwenden Sie inspect Befehl:

docker volume inspect [volume_name]

Es listet Details eines Volumes auf, einschließlich seines Speicherorts in der Hostdatei (Mountpoint ). Alles, was innerhalb des Datenvolumens gespeichert ist, kann auch in dem Verzeichnis gefunden werden, das unter dem Mountpoint-Pfad aufgeführt ist.

Laden eines Datenvolumens

Um ein Datenvolume in einen Container einzubinden, fügen Sie --mount hinzu -Flag zum docker run Befehl. Es fügt das Volume dem angegebenen Container hinzu, wo es die in der virtuellen Umgebung erzeugten Daten speichert.

Befolgen Sie die grundlegende Syntax, um einen Container auszuführen und ein Datenvolume darauf zu mounten:

docker run --mount source=[volume_name],destination=[path_in_container] [docker_image]

Ersetzen Sie [path_in_container] mit dem Pfad, wo Sie das Datenvolumen im Container platzieren möchten. Alles, was in diesem Verzeichnis gespeichert ist, wird automatisch auch auf dem Datenvolumen auf dem Host gespeichert.

Zum Beispiel, um einen Ubuntu-Container zu starten und die Daten zu mounten Lautstärke darauf, führen Sie aus:

docker run -it --name=example1 --mount source=data,destination=/data ubuntu

Der Befehl weist Docker an, einen Container im interaktiven Modus auszuführen (-it ) aus dem Ubuntu-Image unter dem Namen example1 , während die Volumendaten in /data gemountet werden Verzeichnis innerhalb des Containers.

Überprüfen Sie dann, ob das Volume erfolgreich gemountet wurde, indem Sie den Inhalt des Containers auflisten:

ls

Suchen Sie das Docker-Volume unter dem Namen, der beim Starten des Containers definiert wurde. In diesem Beispiel sind es Daten .

Kopieren von Dateien zwischen Containern von einem freigegebenen Volume

Sehen wir uns an, wie Docker-Volumes es Ihnen ermöglichen, Dateien zwischen Containern zu teilen.

Dazu verwenden wir das im vorherigen Abschnitt erstellte Volume und den Container. Dazu gehörte das Ausführen der Befehle:

  • docker volume create data
  • docker run -it --name=example1 --mount source=data,destination=/data ubuntu

1. Nachdem Sie zur Container-Eingabeaufforderung gewechselt haben, wechseln Sie in das Datenvolume-Verzeichnis:

cd data

2. Erstellen Sie mit dem Touch-Befehl eine leere Beispieldatei:

touch sample1.txt

3. Verlassen Sie nun den Container:

exit

4. Starten Sie dann einen neuen Container example2 bei gleichem Datenvolumen:

docker run -it --name=example2 --mount source=data,destination=/data ubuntu

5. Listen Sie den Inhalt des Containers auf. Sie sollten das Datenverzeichnis wie in Beispiel1 finden :

ls

6. Wechseln Sie in das Datenverzeichnis und listen Sie dessen Inhalt auf:

cd data
ls

Die Ausgabe sollte die sample1.txt auflisten Datei, die Sie im vorherigen Container erstellt haben (example1 ).

Mounten eines Host-Verzeichnisses als Datenvolumen

Sie können auch ein vorhandenes Verzeichnis vom Hostcomputer in einen Container einhängen. Dieser Volume-Typ wird Host-Volumes genannt .

Sie können Host-Volumes mit -v bereitstellen Flag und Angabe des Namens des Hostverzeichnisses.

Alles innerhalb des Host-Verzeichnisses ist dann im Container verfügbar. Darüber hinaus werden alle Daten, die innerhalb des Containers generiert und im Datenvolume abgelegt werden, sicher im Hostverzeichnis gespeichert.

Die grundlegende Syntax zum Mounten eines Hostverzeichnisses lautet:

docker run -v "$(pwd)":[volume_name] [docker_image]

Der "$(pwd)" -Attribut weist Docker an, das Verzeichnis zu mounten, in dem sich der Benutzer gerade befindet.

Das folgende Beispiel zeigt, wie dies gemacht wird.

1. Erstellen Sie zunächst ein Beispielverzeichnis auf dem Host unter dem Namen tmp und bewege dich hinein:

mkdir tmp
cd tmp

2. Sobald Sie sich im Verzeichnis befinden, erstellen Sie eine Testdatei, um zu sehen, ob sie im Container verfügbar ist:

touch file.txt

2. Verwenden Sie dann docker run Befehl zum Starten eines Ubuntu-Containers mit angehängtem Host-Verzeichnis:

docker run -it -v "$(pwd)":/data1 ubuntu

Dadurch wird der Container im interaktiven Modus gestartet und ein Volume unter dem Namen data1 gemountet .

3. Listen Sie den Inhalt des Containers auf und vergewissern Sie sich, dass data1 vorhanden ist Verzeichnis:

ls

4. Öffnen Sie das gemountete Verzeichnis und listen Sie den Inhalt auf. Die Ausgabe sollte die Datei anzeigen, die Sie auf dem Host erstellt haben:

cd data1
ls

Volumenberechtigung und Eigentum

Volume-Berechtigungen können geändert werden, indem der Besitz innerhalb der Dockerfile konfiguriert wird.

Verwenden Sie RUN Anweisung und das chown Befehl zum Festlegen der Docker-Volume-Berechtigung. Stellen Sie sicher, dass diese Anweisung vor der Zeile steht, die VOLUME definiert .

Alternativ können Sie den Eigentümer des Verzeichnisses ändern, das als Host-Volume verwendet wird.

Für Anweisungen zur Verwendung von chown finden Sie unter Linux File Permission Tutorial:How To Check And Change Permissions.

So löschen Sie Docker-Volumes

Um ein Docker-Volume zu löschen, müssen Sie seinen Namen angeben.

Die grundlegende Syntax zum Entfernen eines Docker-Volumes in der Befehlszeile lautet:

docker volume rm [volume_name]

Docker entfernt Volumes nur, wenn sie gerade nicht verwendet werden. Wenn es einen Container mit dem angegebenen Volumen gibt, antwortet es mit einem Fehler. Um fortzufahren, stoppen und entfernen Sie den Container und führen Sie dann docker volume rm erneut aus Befehl.

So löschen Sie alle Volumes auf einmal

So löschen Sie alle nicht verwendeten Docker-Volumes mit einem einzigen Befehl:

docker volume prune

Die Ausgabe warnt Sie, dass alle lokalen Volumes entfernt werden, die nicht von mindestens einem Container verwendet werden. Drücken Sie y um fortzufahren.


Ubuntu
  1. Wie fange ich mit Übersetzungen an?

  2. Wie erstelle ich eine LVM-Partition/ein physisches Volume> 2 TB?

  3. Wie fange ich mit Juju an?

  4. Docker-Volumes verstehen

  5. Wie man einen gerade gestarteten Prozess pipi bekommt

Lxc und wie fange ich an?

So fügen Sie einem vorhandenen Docker-Container ein Volume hinzu

Docker unter Windows? Beginnen Sie jetzt mit dem Lernen oder …!

So erstellen Sie Docker-Volumes unter Windows auf einfache Weise

So erhalten Sie die IP-Adresse des Docker-Containers

Erste Schritte mit Arch Linux