Wie man die Logs eines detached Docker-Containers anzeigt

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Docker hat die Art und Weise, wie wir Anwendungen entwickeln und bereitstellen, revolutioniert. Die Verwaltung der Logs von detached Containern (abgetrennten Containern) kann jedoch eine Herausforderung sein. In diesem Tutorial werden Sie durch den Prozess des Anzeigens der Logs von detached Docker-Containern geführt, damit Sie Ihre containerisierten Anwendungen besser verstehen und Fehler beheben können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/attach("Attach to Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/logs("View Container Logs") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") subgraph Lab Skills docker/attach -.-> lab-411630{{"Wie man die Logs eines detached Docker-Containers anzeigt"}} docker/exec -.-> lab-411630{{"Wie man die Logs eines detached Docker-Containers anzeigt"}} docker/logs -.-> lab-411630{{"Wie man die Logs eines detached Docker-Containers anzeigt"}} docker/info -.-> lab-411630{{"Wie man die Logs eines detached Docker-Containers anzeigt"}} docker/version -.-> lab-411630{{"Wie man die Logs eines detached Docker-Containers anzeigt"}} end

Grundlagen von Docker-Containern

Docker ist eine beliebte Open-Source-Plattform, die es Entwicklern ermöglicht, Anwendungen in einer containerisierten Umgebung zu entwickeln, bereitzustellen und auszuführen. Container sind leichte, eigenständige und ausführbare Softwarepakete, die alles enthalten, was für die Ausführung einer Anwendung benötigt wird, einschließlich des Codes, der Laufzeitumgebung, der Systemtools und der Bibliotheken.

Was ist ein Docker-Container?

Ein Docker-Container ist eine standardisierte Softwareeinheit, die Code und alle seine Abhängigkeiten zusammenfasst, sodass die Anwendung schnell und zuverlässig in verschiedenen Rechenumgebungen ausgeführt werden kann. Container werden aus Docker-Images erstellt, die die Baupläne für die Container darstellen. Docker-Images werden mit einer Dockerfile erstellt, einem Textdokument, das alle Befehle enthält, die ein Benutzer auf der Befehlszeile aufrufen kann, um ein Image zusammenzustellen.

graph TD A[Docker Image] --> B[Docker Container] B --> C[Application] B --> D[Runtime] B --> E[System Tools] B --> F[Libraries]

Vorteile von Docker-Containern

  • Konsistenz: Container stellen sicher, dass die Anwendung unabhängig von der Umgebung immer gleich läuft.
  • Portabilität: Container können auf jedem Computer ausgeführt werden, auf dem Docker installiert ist, was es einfach macht, eine Anwendung von einer Umgebung in eine andere zu verschieben.
  • Skalierbarkeit: Container können einfach hoch- oder herunterskaliert werden, um sich an wechselnde Anforderungen anzupassen.
  • Effizienz: Container sind leichtgewichtig und verbrauchen weniger Ressourcen als traditionelle virtuelle Maschinen.

Docker-Architektur

Docker verwendet eine Client-Server-Architektur, bei der der Docker-Client mit dem Docker-Daemon kommuniziert, der für das Erstellen, Ausführen und Verteilen von Docker-Containern verantwortlich ist.

Komponente Beschreibung
Docker Client Die Benutzeroberfläche für das Docker-System. Es ermöglicht Benutzern, mit dem Docker-Daemon zu interagieren.
Docker Daemon Der Hintergrundprozess, der Docker-Objekte wie Images, Container, Netzwerke und Volumes verwaltet.
Docker Registry Ein Speicher- und Verteilungssystem für Docker-Images. Die Standard-Registrierung ist Docker Hub, eine öffentliche Registrierung, die von Docker bereitgestellt wird.
graph LR A[Docker Client] --> B[Docker Daemon] B --> C[Docker Registry] B --> D[Docker Images] B --> E[Docker Containers]

Anzeigen der Logs von detached Containern (abgetrennten Containern)

Wenn Sie einen Docker-Container im detached-Modus (mit der Option -d) ausführen, läuft der Container im Hintergrund, und Sie haben keinen direkten Zugriff auf seine Ausgabe. Sie können jedoch immer noch die Logs eines detached Containers über die Docker-Befehlszeilenschnittstelle (CLI) anzeigen.

Anzeigen der Logs eines detached Containers

Um die Logs eines detached Containers anzuzeigen, können Sie den Befehl docker logs verwenden. Die grundlegende Syntax lautet:

docker logs [container_name or container_id]

Nehmen wir beispielsweise an, Sie haben einen detached Container namens my-app:

docker run -d --name my-app nginx

Sie können die Logs dieses Containers mit dem folgenden Befehl anzeigen:

docker logs my-app

Dadurch werden die Logs des Containers my-app in Ihrem Terminal angezeigt.

Echtzeit-Anzeige der Logs

Wenn Sie die Logs eines detached Containers in Echtzeit anzeigen möchten, können Sie die Option -f (follow) mit dem Befehl docker logs verwenden:

docker logs -f my-app

Dadurch bleibt die Log-Ausgabe in Ihrem Terminal geöffnet, und es werden kontinuierlich neue Log-Einträge angezeigt, sobald sie vom Container generiert werden.

Filtern der Logs

Sie können die Logs auch nach Zeit oder bestimmten Log-Leveln filtern. Beispielsweise können Sie die letzten 10 Log-Einträge anzeigen:

docker logs --tail 10 my-app

Oder Sie können die Logs der letzten 5 Minuten anzeigen:

docker logs --since 5m my-app

Sie können auch die Logs nach Log-Level filtern, indem Sie die Option --until verwenden:

docker logs --until 5m my-app

Dadurch werden die Logs der letzten 5 Minuten angezeigt.

Logging-Treiber

Docker unterstützt verschiedene Logging-Treiber (Logging Drivers), die bestimmen, wie die Container-Logs gespeichert und verwaltet werden. Der Standard-Logging-Treiber ist json-file, aber Sie können einen anderen Logging-Treiber für Ihren Docker-Daemon oder einzelne Container konfigurieren. Dies kann nützlich sein, um eine Integration mit externen Log-Verwaltungssystemen herzustellen.

Praktische Logging-Techniken

Neben dem grundlegenden docker logs-Befehl gibt es mehrere praktische Techniken, mit denen Sie die Logs Ihrer Docker-Container verwalten und analysieren können.

Logging in eine Datei

Anstatt sich auf den Standard-Logging-Treiber json-file zu verlassen, können Sie Ihre Docker-Container so konfigurieren, dass sie die Logs in eine Datei auf dem Host-System schreiben. Dies kann für die langfristige Speicherung und Analyse der Logs nützlich sein.

Um in eine Datei zu loggen, können Sie die Flags --log-driver und --log-opt beim Starten eines Containers verwenden:

docker run -d --name my-app --log-driver=local --log-opt=max-size=10m --log-opt=max-file=5 nginx

In diesem Beispiel werden die Logs in eine Datei auf dem Host-System geschrieben, wobei die maximale Dateigröße 10 MB beträgt und es maximal 5 Log-Dateien gibt.

Logging an ein Remote-System

Sie können Ihre Docker-Container auch so konfigurieren, dass sie die Logs an ein Remote-Logging-System wie Elasticsearch, Splunk oder Syslog senden. Dies kann für die zentrale Log-Verwaltung und -Analyse nützlich sein.

Um an ein Remote-System zu loggen, können Sie die Flags --log-driver und --log-opt beim Starten eines Containers verwenden:

docker run -d --name my-app --log-driver=syslog --log-opt=syslog-address=tcp://192.168.1.100:514 nginx

In diesem Beispiel werden die Logs an einen Syslog-Server mit der IP-Adresse 192.168.1.100 auf Port 514 gesendet.

Logging-Utilities

Es gibt mehrere Drittanbieter-Utilities, die Ihnen helfen können, Docker-Logs effektiver zu verwalten und zu analysieren. Einige beliebte Optionen sind:

  • Logspout: Ein leichtgewichtiger Container, der Docker-Logs sammelt und an einen zentralen Logging-Service weiterleitet.
  • Fluentd: Ein Open-Source-Datenkollektor, der zur Aggregation und Verarbeitung von Docker-Logs verwendet werden kann.
  • Graylog: Eine leistungsstarke Log-Verwaltungs- und -Analyseplattform, die Docker-Logs aufnehmen und verarbeiten kann.

Diese Tools können zusätzliche Funktionen wie Log-Filterung, Alarmierung und Visualisierung bieten, um Ihnen zu helfen, die Logs Ihrer Docker-Container besser zu verstehen und zu verwalten.

Zusammenfassung

In dieser umfassenden Anleitung erfahren Sie, wie Sie die Logs von detached Docker-Containern (abgetrennten Docker-Containern) anzeigen, praktische Logging-Techniken kennenlernen und die erforderlichen Fähigkeiten erwerben, um Ihre Docker-basierten Anwendungen effektiv zu verwalten und zu überwachen. Am Ende dieses Tutorials werden Sie ein solides Verständnis von Docker-Logging haben und in der Lage sein, verschiedene Logging-Szenarien mit Selbstvertrauen zu bewältigen.