← Back to blog

Wie man Daten zwischen einem Docker-Container und einem Host teilt

Category
Wie man Daten zwischen einem Docker-Container und einem Host teilt

Einführung

Im Allgemeinen laufen Docker-Container nur für einen bestimmten Zeitraum – die Zeit, die für die Ausführung des Befehls benötigt wird. Auf die im Container verfügbaren Daten kann während der Laufzeit nur von innerhalb des Containers zugegriffen werden.

Docker-Volumes können verwendet werden, um einfach auf die Dateien zuzugreifen und sie für einen längeren Zeitraum zu speichern. Wenn Sie beispielsweise einen Nginx-Webserver haben und die Protokolle für Audits speichern möchten, können Sie ein Docker-Volume verwenden, um die Protokolle aus dem Container auf Ihrem Host-System zu speichern.

In dieser Anleitung werden Sie lernen, wie Sie Daten zwischen dem Inneren des Docker-Containers und dem Host-System austauschen. 

Voraussetzungen

Für diese Anleitung benötigen Sie die folgenden Voraussetzungen:

Schritt 1 – Ein Volume per Bind-Mount einbinden

Sie können ein Verzeichnis namens logs im Home-Verzeichnis Ihres aktuellen Benutzers erstellen und es per Bind-Mount an /var/log/nginx im Nginx-Container mit dem folgenden Befehl einbinden:

Hier sind detailliertere Informationen zu diesem Befehl:

  • --name=nginx gibt dem Container einen Namen zur einfachen Referenzierung.
  • -d -Argument trennt den Prozess und führt ihn im Hintergrund aus.
  • -v hostPath:containerPath ordnet den Host-Pfad und den Container-Pfad zu, um den Bind-Mount zu erstellen.
  • -p hostPort:containerPort -Argument ordnet den Port des Containers dem Host-Port zu.
  • nginx am Ende der Zeile ist der Name des Images, das zum Starten des Containers verwendet werden soll.
Hinweis: Verwenden Sie immer / oder ~/, um den hostPath zu beginnen, andernfalls betrachtet das -v-Argument den Pfad als den Namen des Volumes und bindet den Mount nicht ein.

Schritt 2 – Zugriff auf Daten auf dem Host

Jetzt läuft ein Nginx-Container auf Ihrem Server, und Port 5000 Ihres Servers ist Port 80 von Nginx zugeordnet. Sie können den Port im Webbrowser mit der folgenden URL öffnen:

nginx homepage

Im Verzeichnis ~/logs sehen Sie die Dateien access.log und error.log. Sie können die Protokolle mit dem Befehl cat anzeigen:

Sie können auch das Protokollverzeichnis ~/logs auf Ihrem Host-System überprüfen und die Protokolldatei von Nginx finden. Wenn Sie außerdem Änderungen im Ordner logs vornehmen, werden diese auch im Ordner /var/log/nginx des Containers widergespiegelt.

Fazit

In dieser Anleitung haben Sie gelernt, wie Sie Daten zwischen dem Inneren des Docker-Containers und dem Host-System austauschen. Dies ist in Entwicklungsumgebungen, in denen die Analyse von Protokollen zur Fehlersuche unerlässlich ist, von entscheidender Bedeutung.

Weitere Ressourcen zu Docker auf unserem Blog finden Sie im Folgenden:

Viel Spaß beim Computing!

Akshay Nagpal

Autor · CloudSigma

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.