Datenaustausch zwischen Containern
Einer der großen Vorteile von Docker-Volumes ist die Möglichkeit, Daten zwischen Containern zu teilen. Erstellen wir einen weiteren Container, der dasselbe Volume verwendet:
docker run -d --name another_container -v my_data:/app/shared_data ubuntu:latest sleep infinity
Dieser Befehl ähnelt stark dem, den wir zuvor verwendet haben, aber wir geben dem Container einen anderen Namen und montieren das Volume an einen anderen Pfad innerhalb des Containers.
Jetzt überprüfen wir, ob dieser neue Container auf die Daten zugreifen kann, die wir zuvor erstellt haben:
docker exec another_container cat /app/shared_data/test.txt
Sie sollten dieselbe Nachricht "Hello from Docker volume" sehen, die wir zuvor geschrieben haben. Dies zeigt, dass beide Container auf dieselben Daten zugreifen.
Fügen wir aus diesem neuen Container einige weitere Daten hinzu:
docker exec another_container sh -c "echo 'Data from another container' >> /app/shared_data/test.txt"
Dieser Befehl fügt eine neue Zeile in unsere test.txt
-Datei hinzu.
Jetzt, wenn wir den Inhalt der Datei aus einem der beiden Container überprüfen, sollten wir beide Zeilen sehen:
docker exec my_container cat /app/data/test.txt
Sie sollten sowohl "Hello from Docker volume" als auch "Data from another container" in der Ausgabe sehen.
Dies zeigt, wie Docker-Volumes verwendet werden können, um Daten zwischen Containern zu teilen, was für viele Anwendungen unglaublich nützlich ist.