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:
- Ubuntu 18.04 Server: Sie können ganz einfach einen neuen CloudSigma-Server mit dem Ubuntu 18.04-Image erstellen, indem Sie unserer hilfreichen Anleitung folgen.
- Docker – Sie können Docker mithilfe unserer Anleitung zur Einrichtung von Docker auf Ubuntu installieren und sich damit vertraut machen.
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:
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
Hier sind detailliertere Informationen zu diesem Befehl:
--name=nginxgibt dem Container einen Namen zur einfachen Referenzierung.-d-Argument trennt den Prozess und führt ihn im Hintergrund aus.-v hostPath:containerPathordnet 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.nginxam Ende der Zeile ist der Name des Images, das zum Starten des Containers verwendet werden soll.
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:
|
1 |
http://serverIP:5000/ |

Im Verzeichnis ~/logs sehen Sie die Dateien access.log und error.log. Sie können die Protokolle mit dem Befehl cat anzeigen:
|
1 |
cat access.log |
|
1 2 3 |
Ausgabe: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
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:
- Wie man Docker auf Ubuntu in der Public Cloud installiert & betreibt
- Installation und Einrichtung von Docker auf CentOS 7
- Docker-Ressourcen bereinigen – Images, Container und Volumes
- Wie man Docker auf CloudSigma ausführt (mit CloudInit) Aktualisiert
Viel Spaß beim Computing!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.