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

So teilen Sie Daten zwischen Docker-Containern

Einführung

Docker ermöglicht es Benutzern, verschiedene Anwendungen isoliert vom Host-Computer auszuführen, ohne dass separate Betriebssysteme für die Ausführung erforderlich sind. Stattdessen installieren und verwalten Sie Docker-Container mit einer Containerisierungs-Engine (Docker-Daemon), die eine ähnliche Rolle wie der Hypervisor für virtuelle Maschinen hat.

Wenn Sie mit der Verwendung von Docker beginnen, werden Sie Situationen begegnen, in denen Sie wissen müssen, wie Daten zwischen Containern ausgetauscht werden.

Voraussetzungen

  • Ein Benutzer mit sudo-Berechtigungen
  • Zugriff auf ein Terminal/eine Befehlszeile
  • Eine stabile Version von Docker

Schritt 1:Container mit Datenvolumen erstellen

Um zu demonstrieren, wie zwei Container geteilt werden, müssen Sie einen Container erstellen (Container1 ) mit Datenvolumen (Datenvolumen1 ) Sie können später teilen.

1. Erstellen Sie zunächst ein unabhängiges Volume, das Sie für zwei Docker-Container freigeben:

docker volume create --name DataVolume1

2. Erstellen Sie dann einen Docker-Container und nennen Sie ihn Container1 mit angehängtem Datenvolumen, indem Sie den folgenden Befehl ausführen:

docker run -ti --name=Container1 -v DataVolume1:/datavolume1 ubuntu

2. Erstellen Sie als Nächstes eine Datei im Datenvolumen und fügen Sie Text hinzu:

echo "Share this file between containers" > /datavolume1/Example.txt

3. Beenden Sie den Container mit dem Befehl:exit

Schritt 2:Erstellen Sie einen neuen Container und fügen Sie ihn dem Datenvolumen hinzu

Erstellen Sie als Nächstes einen neuen Container (Container2 ) die Dateien mit Container1 teilen wird .

1. Erstellen Sie Container2 und mounten Sie die Volumes von Container1 :

docker run -ti --name=Container2 --volumes-from Container1 ubuntu

2. Fügen Sie Text aus Container2 hinzu um zu zeigen, dass beide Container auf DataVolume1 schreiben können :

echo "This will also appear in DataVolume1" >> /datavolume1/Example.txt

3. Verlassen von Container2 Verwenden Sie den Befehl:exit

Schritt 3:Bestätigen Sie, dass Sie Daten zwischen Docker-Containern austauschen können

1. Starten Sie Container1 neu um die Änderungen des Datenvolumens zu prüfen:

docker restart Container1

2. Bestätigen Sie, dass beide Container dasselbe Datenvolumen lesen und schreiben können und dass der Text, den Sie in Container2 geschrieben haben erscheint in DataVolume1 :

cat /datavolume1/Example.txt

Wenn der Text erfolgreich zum Datenvolumen hinzugefügt wurde, sollte die Ausgabe Folgendes anzeigen:

Share this file between containers
This will also appear in DataVolume1

3. Zum Abschluss verlassen Sie den Container mit dem Befehl:exit

Optional:Schreibgeschützte Volumes erstellen

Durch das Erstellen eines „schreibgeschützten“ Docker-Containers wird verhindert, dass andere Änderungen an den Daten vornehmen, sodass sie die Dateien nur anzeigen können.

Fügen Sie :ro hinzu zum Containernamen, der geteilt, aber nicht geändert werden soll.

Im folgenden Beispiel Container2 dürfen Dateien aus Container1 sehen kann sie aber nicht bearbeiten.

docker run -ti --name=Container2 --volumes-from Container1:ro ubuntu

Um zu prüfen, ob Container2 nur Leserechte hat, versuchen Sie, die Beispieldatei aus Container1 zu entfernen durch Ausführen des Befehls:

rm /datavolume1/Example.txt

Die Ausgabe sollte zeigen, dass Sie erfolgreich eine schreibgeschützte Datei erstellt haben. Folglich können andere Container auf die Daten zugreifen und sie anzeigen, aber keinen Beitrag leisten oder Änderungen daran vornehmen.


Ubuntu
  1. So teilen Sie Daten zwischen Docker-Containern unter Ubuntu 22.04

  2. So verwenden Sie Docker Compose

  3. So verbinden Sie Docker-Container

  4. So übergeben Sie Umgebungsvariablen an Docker-Container

  5. So teilen Sie Daten zwischen Docker-Containern

So installieren Sie Docker Portainer zum Verwalten von Containern

So reduzieren Sie die Docker-Image-Größe in Docker-Containern

So führen Sie Docker-Container aus

So entfernen Sie Docker-Container

So stoppen Sie Docker-Container

So verwalten Sie Docker-Container