Zurück zum Blog

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

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!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.