GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Erläuterung von Docker-Volumes mit Beispielen

Im Fall von Docker , werden die Daten im Container gespeichert. Und wenn wir den Container entfernen, gehen Daten verloren. In dieser Anleitung lernen wir, wie man Docker-Volumes erstellt, wie man sie an die Container anfügt und wie das gleiche Volume von zwei oder mehr Containern zum Speichern der Daten gemeinsam genutzt werden kann.

Wenn Sie die Docker-Grundlagen noch nicht kennen, lesen Sie die folgende Anleitung:

  • Erste Schritte mit Docker

Warum benötigen wir Volumes für Docker?

  • Beim Löschen von Containern werden Volumes nicht gelöscht.
  • Volume an Container anhängen oder entfernen.
  • Volumes (Speicher/Daten) auf verschiedene Container verteilen.
  • Container vom Lager entkoppeln.
  • Volume auf Remote-Host oder Cloud speichern.

Wir können sowohl die Daten als auch den Container logisch aufteilen. Wir können die Daten so aufbewahren, dass sie entfernt werden
Im Container werden dann auch unsere Daten vorhanden sein. Nachdem wir also den Container zerstört haben, können wir das Volume sowohl an bestehende Container als auch an neue Container anhängen.

Erste Schritte mit Docker-Volumes

Das Docker-Volume Der Befehl zeigt die Details der Volume-Befehle an, mit denen wir ein Volume erstellen, die detaillierten Daten des Volumes überprüfen, die verfügbaren Volumes auflisten und die Volumes entfernen können.

# docker volume

Zeigen Sie den Hilfebereich des Befehls „docker volume“ an

Erstellen von Docker-Volumes

Die Syntax zum Erstellen eines Docker-Volumes lautet:

docker volume create <volume_name>

Beispiel:

# docker volume create devops_volume

Der obige Befehl erstellt ein Docker-Volume namens devops_volume .

Docker-Volume erstellen

Docker-Volumes auflisten

Um alle erstellten Docker-Volumes aufzulisten, führen Sie Folgendes aus:

# docker volume ls

Docker-Volumes auflisten

Inspizieren von Docker-Volumes

Die Docker-Volumenprüfung Der Befehl gibt Ihnen die Details zur Erstellung des Volumes, Speicherort, Namen und Umfang.

Syntax:

docker volume inspect <volume_name>

Lassen Sie mich Ihnen die Details eines Docker-Volumes mit dem Namen devops_volume zeigen .

# docker volume inspect devops_volume

Docker-Volumes prüfen

Erstellen von Containern mit dem angehängten Volume

Syntax:

docker container create --name <container_name> -it --mount source<volume_name>,target=/<folder_Name> <image_name>

Beispiel:

# docker container create --name myBusyBox1 -it --mount source=devops_volume,target=/app busybox

Erstellen Sie einen Container mit dem daran angehängten Volume

Um zu überprüfen, ob der Container erstellt wurde oder nicht, verwenden Sie docker ps -a Befehl:

"docker ps"-Befehlsausgabe

Container starten

Um den neu erstellten Container zu starten, zum Beispiel myBusyBox1 , ausführen:

# docker container start myBusyBox1

Docker-Container starten

Wie Sie im obigen Screenshot sehen, wurde der Container myBusyBox1 vor 8 Minuten erstellt und vor 6 Sekunden gestartet.

Kopieren von Dateien zwischen Containern von einem freigegebenen Volume

Lassen Sie uns ein Szenario erstellen, in dem wir die Datei in einem Container am freigegebenen Speicherort erstellen und versuchen, von einem anderen Container aus auf die Datei zuzugreifen.

Wir haben bereits einen Container namens myBusyBox1 erstellt. Lassen Sie uns eine andere erstellen, zum Beispiel myBusyBox2 .

Container erstellen

Jetzt haben wir zwei Container im laufenden Zustand, myBusyBox1 und myBusyBox2.

Lassen Sie uns eine Verbindung zum ersten Container herstellen und eine Datei in /app erstellen Ordner.

# docker exec -it myBusyBox1 sh

Der obige Befehl führt Sie in den Container.

Erstellen Sie dann einen neuen Ordner mit dem Namen devops im Ordner /app und verlassen Sie den ersten Container.

mit erstem Container verbinden

Kopieren Sie nun eine Datei, zum Beispiel index.html , vom lokalen System zum Speicherort /app/devops/ des Containers myBusyBox1.

# docker container cp index.html myBusyBox1:/app/Devops

Verbinden Sie sich nun mit einem anderen zweiten Container, z. B. myBusyBox2 und überprüfen Sie dies in /app/devops Ordner die index.html Datei vorhanden ist oder nicht.

# docker exec -it myBusyBox2 sh

mit zweitem Container verbinden

Aus dem obigen Screenshot wird bestätigt, dass beide Container dasselbe Volume teilen.

Wir können den Mountpoint-Standort des Volumes mit docker volume inspect überprüfen Befehl wie unten:

# docker volume inspect devops_volume

docker inspect volume Befehl

Wie Sie sehen, ist der Mountpoint-Speicherort /var/lib/docker/volumes/devops_volume/_data .

Lassen Sie uns zum Einhängepunkt gehen und sehen, ob die kopierte Datei verfügbar ist oder nicht.

Einhängepunkt für Docker-Volumes

Am Mountpoint-Standort haben wir dieselbe Datei gefunden.

Docker-Volumes löschen

Die Syntax zum Löschen eines Volumes lautet:

docker volume rm <volume_name>

Lassen Sie uns das Volume mit dem Namen devops_volume löschen .

# docker volume rm devops_volume

ein Docker-Volume löschen

Im obigen Screenshot versuchen wir, das Volume zu löschen, können es aber nicht löschen, da das Volume bereits verwendet wird. Also müssen wir zuerst den Container töten und Volumen frei machen. Und dann können wir das Volume löschen.

Entfernen Sie dazu zunächst alle laufenden Container mit dem Befehl:

# docker rm –f $(docker ps -aq)

Und dann das Volume entfernen:

# docker volume rm devops_volume

Docker-Volumes löschen

Alle Volumes auf einmal löschen

Mit docker rm Befehl können wir jeweils ein Volume entfernen. Wenn wir mehrere Volumes haben und alle Volumes löschen möchten, müssen wir prune verwenden Befehl.

Lassen Sie uns ein paar Bände erstellen:

Docker-Volumes erstellen

Löschen Sie nun alle Docker-Volumes auf einmal mit dem Befehl:

# docker volume prune

alle Docker-Volumes auf einmal löschen

Sehen? Wir haben alle Volumes auf einmal gelöscht.

Empfohlene Lektüre:

  • Erläuterung von Docker-Netzwerkkonzepten
  • So aktualisieren Sie laufende Docker-Container automatisch
  • ctop – Ein Befehlszeilen-Überwachungstool für Linux-Container
  • Portainer – Eine einfachste Art, Docker zu verwalten
  • PiCluster – Eine einfache, webbasierte Docker-Verwaltungsanwendung
  • Dockly – Docker-Container vom Terminal aus verwalten

Über den Autor:

Dhruv Tiwari ist ein DevOps-Ingenieur, der es liebt, Dinge zu automatisieren, mit Linux in großem Maßstab zu arbeiten und von dem Tag zu träumen, an dem Systeme intelligent genug sind, um sich nie mehr bei einer Linux-Box anmelden zu müssen. Reise von CI/CD vom Quellcode über die Codebereitstellung bis zur Produktion.


Docker
  1. Was ist Docker? Erfahren Sie, wie Sie Container verwenden – mit Beispielen erklärt

  2. Docker-Protokolle:Was sie sind und wie sie verwendet werden (mit Beispielen)

  3. Logische Volumes unter Linux mit LVM erstellen

  4. So installieren Sie Jenkins mit Docker

  5. Erweitern und verkleinern Sie Volumes mit der Datenträgerverwaltung

Netcat (nc) Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Erläutern von Docker-Netzwerkkonzepten

Verbessern Sie Ihr DevOps-Spiel mit diesen Beispielen für Docker-Ausführungen

So führen Sie Jenkins in Docker mit Docker Compose with Volumes aus

20 nützliche Beispiele für Docker-Volume-Befehle für moderne Entwickler