50 % Rabatt auf alle Pläne, begrenzte Zeit. Ab $2.48/mo
Noch 9 Min.
Entwicklertools & DevOps

Einfache Anleitung zu Docker Compose Logs: Prüfen und Verwalten

Ada Lovegood By Ada Lovegood 9 Min. Lesezeit Aktualisiert am 23. Feb. 2025
Docker-Protokolle

Wollen Sie wissen, was Docker-Apps im Hintergrund tun? Werfen wir einen Blick auf die verborgene Informationsquelle Ihrer Container: die Logs. Sie zeigen jeden Schritt, den Ihre Container ausführen, und sind unverzichtbar bei der Fehleranalyse. Doch bevor wir loslegen, schauen wir uns kurz an, was Docker und Docker Compose sind.

Docker ermöglicht es, Anwendungen in kompakte Container zu verpacken und auf den meisten Betriebssystemen ohne zusätzliche Abhängigkeiten auszuführen. Stell dir vor, du packst deine Apps in kleine Boxen - sogenannte Container - die überall gleich funktionieren. Wer Docker Compose verstehen möchte, sollte zunächst mit dem Konzept der Container vertraut sein. Ich empfehle daher, zuerst unseren Blogbeitrag zu lesen über die Vorteile der Containerisierung.

Docker Compose ist Bestandteil von Docker und vereinfacht die Entwicklung mehrerer containerisierter Anwendungen, indem es deren Services, Netzwerke und Speicher miteinander verknüpft. Docker Container Logs und Docker Compose Logging geben Entwicklern Einblick in das Verhalten der einzelnen Container.

Du willst mehr über Docker Compose Logs erfahren? Dann bist du hier genau richtig. Dieser Blogbeitrag erklärt die Grundlagen von Docker Compose Logs und geht auch auf fortgeschrittene Details ein. Lerne, wie du Docker Compose optimal für deine Projekte einsetzt.

Docker Compose Logs: Warum sie wichtig sind

Stell dir vor: Ein Entwickler startet eine App mit Docker, richtet aber kein Docker Logging ein. Zunächst läuft alles problemlos. Kurze Zeit später häufen sich Fehler, und die App wird langsamer. Ohne Docker Logs hat der Entwickler keine Möglichkeit nachzuvollziehen, was innerhalb der Docker Container schiefgelaufen ist. Docker Compose Logs sind im Grunde ein detailliertes Protokoll dieser Container. Sie erfassen jeden Vorgang - unverzichtbar, um Probleme gezielt aufzuspüren und zu beheben.

Als Entwickler oder System-Administrator musst du wissen, was innerhalb und zwischen verketteten Anwendungen passiert. Genau hier kommen Docker Compose Logs als praktisches Werkzeug ins Spiel. Warum sind diese Logs so wichtig?

  • Fehlerbehebung und Debugging

Wenn eine Anwendung nicht korrekt läuft oder Fehler auftreten, sind die Docker Logs die erste Anlaufstelle. Anhand der Docker Logs können Entwickler die Ursache eines Problems eingrenzen - ob es sich um einen Code-Fehler, eine Fehlkonfiguration oder ein Ressourcenproblem handelt.

  • Anwendungs-Health-Monitoring

Regelmäßiges Monitoring der Anwendungs-Logs gibt Aufschluss über den allgemeinen Zustand der Services. Logs zeigen frühe Warnsignale wie wiederholte Fehler oder langsame Antwortzeiten. Wer diese Muster frühzeitig erkennt, kann mögliche Probleme im Vorfeld verhindern.

  • Audit und Compliance

Für Anwendungen, die bestimmten Standards entsprechen müssen, sind Docker Logs der erste Nachweis dafür, ob die Anwendung die Vorgaben einhält. Außerdem spielen diese Logs eine wichtige Rolle bei der Überwachung autorisierter und nicht autorisierter Aktivitäten.

  • Optimierung

Logs liefern wertvolle Performance-Daten und sind damit eine wichtige Grundlage für die Softwareoptimierung. Entwickler können damit etwa langsame Datenbankabfragen, ineffiziente Code-Pfade oder ungenutzte Ressourcen identifizieren.

Ein Docker-Rezept erstellen: Einen Webserver deployen

In diesem Abschnitt erstellen wir gemeinsam ein Docker-Rezept. Um mit Docker Compose Logs loszulegen, brauchen wir zunächst etwas zum Starten. Dazu deployen wir einen Webserver. Um ein Dockerfile zu erstellen, führe einfach nano Dockerfile im gewünschten Verzeichnis auf deinem VPS aus, füge folgenden Inhalt ein und speichere die Datei:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Was macht jede Zeile dieses Codes?

  • Wir beginnen mit einem schlanken Basis-Image, nginx:alpine.
  • Als nächstes entfernen wir die Standard-Willkommensseite von NGINX.
  • Dann stellen wir sicher, dass der Webserver auf Port lauscht 80.
  • Zum Schluss starten wir den NGINX-Server mit CMD.

Jetzt ist unsere Dockerfile fertig. Im nächsten Schritt erstellen wir die Docker Compose-Datei. So sieht die Struktur der docker-compose.yml Datei aus:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

Schauen wir uns jeden Teil im Detail an:

  • Wir verwenden Version 3.8.
  • In der nächsten Zeile benennen wir unseren Dienst „web“.
  • Dann weisen wir Docker an, unseren Webserver aus dem aktuellen Verzeichnis zu erstellen.
  • Wir verbinden Port 8080 auf unserem Host mit Port 80 im Container, damit der Webserver eine Verbindung aufbauen kann.
  • Zuletzt bildet die Volumes-Konfiguration index.html von der Host-Festplatte auf den Container ab. Später kannst du eine index.html Datei mit beliebigem Inhalt erstellen und sie dort ablegen, wo die Dockerfile und docker-compose.yml Dateien liegen.

Jetzt starten wir unseren Docker-Container mit Docker Compose. Dazu führen wir einfach docker-compose up.

Docker-Container mit Docker Compose starten

Sobald du den docker-compose up Befehl ausführst, lädt Docker die benötigten Images aus dem Internet herunter und konfiguriert sie gemäß unseren Konfigurationsdateien.

Um zu prüfen, ob der Webserver läuft, öffne deinen Browser, gib die IP-Adresse deines VPS ein und rufe Port 8080 auf.

dockerisierte Webseite

Als Hinweis: Sie können auch docker-compose up -d verwenden, um den Container im Hintergrund zu starten.

Logs mit Docker Compose abrufen

Der Webserver läuft jetzt und ist bereit. Er schreibt bereits Logs und speichert diese zur späteren Auswertung. Auf die Docker Compose Logs zuzugreifen ist wichtig für Fehlersuche und Monitoring. Aber wie liest man diese Logs? Genau hier kommt docker-compose-Protokolle ins Spiel. Stellen Sie sicher, dass Sie sich im Verzeichnis mit der Konfigurationsdatei befinden, und führen Sie den Befehl aus.

Logs mit Docker Compose abrufen

Manchmal möchte man die Logs in Echtzeit verfolgen, während sie geschrieben werden. Fügen Sie dazu einfach -f am Ende des vorherigen Befehls an und führen Sie docker-compose logs -f.

Logs mit Docker Compose abrufen

Manche auf Docker basierenden Anwendungen schreiben keine Zeitstempel in ihre Logs. In diesem Fall können Sie docker-compose logs -t verwenden, um jeder Log-Zeile einen Zeitstempel hinzuzufügen.

Logs mit Docker Compose abrufen

Docker Logs können auch nur die neuesten Einträge anzeigen. Verwenden Sie dazu docker-compose logs –tail 10 um die letzten 10 Log-Einträge anzuzeigen. Der Tail-Parameter bei Docker Compose Logs, und ebenso bei docker logs tail, ist besonders praktisch, wenn Sie die jüngste Aktivität schnell prüfen möchten, ohne den gesamten Log-Verlauf durchzuscrollen.

Logs mit docker compose abrufen

Der Hauptzweck von Docker Compose ist das Erstellen von Multi-Container-Anwendungen. Daher kann es nötig sein, Logs für einen bestimmten Dienst gezielt abzurufen. Verwenden Sie dazu docker-compose logs -f SERVICE, und ersetzen Sie SERVICE durch den tatsächlichen Namen Ihres Dienstes.

Logs mit docker abrufen

Docker-Protokollierung

Das Docker-Ökosystem kann für zusammengeführte Anwendungen, besonders in großen Umgebungen, deutlich komplexer werden. Wie bereits bekannt, schreibt jeder Container eigene Logs. Für den Empfang, die Weiterleitung und Speicherung dieser Logs ist ein Mechanismus namens Logging Driver zuständig. Standardmäßig verwendet Docker JSON-Dateien für den Logging Driver, unterstützt aber auch verschiedene andere Treiber, jeweils mit eigenen Vor- und Nachteilen.

Logs sind in vielen Bereichen unverzichtbar, besonders bei der Fehlersuche und der Optimierung der Systemleistung. Im Folgenden behandeln wir zwei der wichtigsten Anwendungsfälle für Container-Logs:

  • Überwachung: Logs dienen in erster Linie dem Monitoring. Sie zeigen den allgemeinen Zustand unserer containerisierten Anwendungen.
  • Fehlerbehebung: Bei Problemen helfen Logs dabei, Fehler in der Anwendung zu erkennen.

Da docker logs und docker compose logs kontinuierlich generiert werden, können sie den gesamten VPS-Speicher füllen. Deshalb brauchen wir eine Strategie zur Verwaltung des Speicherplatzes, die sogenannte Log Rotation Policy. Um diese Policy zu erstellen und anzuwenden, kehre zur docker-compose.yml Datei zurück und öffne sie. Füge dann einen Logging-Abschnitt mit der folgenden Konfiguration hinzu:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

Du kannst max-size und max-file jederzeit nach Bedarf anpassen.

Docker Logs-Übertragungsmodelle

In fortgeschrittenen Umgebungen kann es sinnvoll sein, anstelle der Standard-JSON-Treiber andere Logging-Modelle zu verwenden, etwa Syslog, fluentd oder ähnliche. Dennoch gilt: Der JSON-file-Treiber ist für die meisten Logging-Szenarien geeignet, und eine Abweichung vom Standard ist oft nicht notwendig.

Je nach Architektur deiner Anwendung oder organisatorischen Anforderungen kann es nötig sein, zentrale Logging-Lösungen, sogenannte Log Aggregatoren, einzusetzen. Diese Dienste, darunter Elasticsearch, Logstash, Kibana usw., sind darauf ausgelegt, Logs aus verschiedenen Quellen zu empfangen, zusammenzuführen, zu speichern und an einem zentralen Ort zu analysieren.

Außerdem solltest du deine Logs auf kosteneffizienteren Speicherlösungen ablegen. Wenn dein VPS schnellen und teuren Speicher verwendet, ist es in der Regel nicht wirtschaftlich, diese Ressourcen für Logs zu nutzen, die du möglicherweise nur gelegentlich zur Referenz benötigst.

Es gibt zahlreiche Logging-Modelle, jedes mit eigenen Vor- und Nachteilen. Wichtig ist, jedes Modell sorgfältig zu bewerten und dasjenige auszuwählen, das am besten zu deinen Anforderungen passt.

Linux VPS Hosting

Hol dir einen Economy- oder Premium-Linux VPS zum günstigen Preis - ideal für Websites oder Remote-Desktop. VPS läuft auf Linux KVM für höhere Effizienz und setzt auf leistungsstarke Hardware mit NVMe SSD-Speicher für mehr Geschwindigkeit.

Weiterlesen

Fazit

Docker Compose Logs zu verstehen ist entscheidend für das effektive Verwalten und Debuggen von Docker-Anwendungen. Wer lernt, diese Logs abzurufen und zu überwachen, löst Probleme schneller und verbessert die Leistung und Sicherheit seiner App. Ob in der Entwicklung oder im Betrieb: Docker Compose Logs sind ein unverzichtbares Werkzeug für effizientes Container-Management.

Häufig gestellte Fragen

Wie filtere ich Docker Compose Logs nach Zeitraum?

Docker Compose bietet keine direkte Möglichkeit, Logs nach Zeit zu filtern. Du kannst Logs jedoch filtern, indem du sie per Pipe durch grep leitest. Zum Beispiel: docker-compose logs | grep "2023-04-06" - ersetze dabei "2023-04-06" durch das gesuchte Datum oder Zeitmuster.

Wie stoppt man Container, die mit Docker Compose gestartet wurden?

Wechsle in das Verzeichnis, das die docker-compose.yml-Datei enthält, und führe den Befehl docker-compose down aus.

Wie entfernt man Log-Dateien manuell?

Anstatt Log Rotation in der docker-compose.yml zu konfigurieren, kannst du Docker JSON-Log-Dateien manuell aus /var/lib/docker/containers/<container_id>/ entfernen. Ermittle dazu zunächst die Docker-Container-ID mit docker ps -a.

Kann man Docker Logs per Tail verfolgen? 

Ja, das ist möglich. Verwende dazu den Befehl docker logs zusammen mit der Option -f oder --follow. Damit verfolgst du die Docker-Logs in Echtzeit.

Teilen

Weitere Blog-Beiträge

Weiterlesen.

Ein metallischer Behälter, geschützt von einem leuchtenden Neon-Cyan-Wireframe-Dome, mit dem Artikeltitel und dem Cloudzy-Logo vor einem tiefblauen Hintergrund.
Entwicklertools & DevOps

Die häufigsten Docker-Sicherheitsfehler und wie man sie vermeidet (2026)

Docker kann monatelang in der Produktion laufen, ohne dass ein Problem sichtbar wird. Container starten, Anwendungen antworten, nichts bricht. Dann sorgt ein offener Port oder eine falsch konfigurierte Berechtigung für

Rexa CyrusRexa Cyrus 15 Min. Lesezeit
Eine leuchtende blaue 3D-Würfelstruktur, die Docker-Container symbolisiert, mit dem Text 'Portainer vs Yacht: Which Docker UI Should You Choose' und dem Cloudzy-Logo.
Entwicklertools & DevOps

Portainer vs Yacht: Welches Docker-UI ist die richtige Wahl in 2026?

Docker-Container über die CLI zu verwalten ist für einfache Setups praktisch, stößt aber schnell an Grenzen. Mit wachsender Container-Anzahl wird das manuelle Nachverfolgen von Zuständen, Logs und Updates fehleranfällig

Rexa CyrusRexa Cyrus 13 Min. Lesezeit
Continuous-Integration-Tools
Entwicklertools & DevOps

Die besten CI/CD-Tools für optimierte DevOps-Workflows 2026

&nbsp; Die Softwareentwicklung verändert sich schneller denn je. Wer mit diesem Tempo Schritt halten will, kommt an DevOps-Methoden und Agile nicht vorbei

Ada LovegoodAda Lovegood 11 Min. Lesezeit

Bereit zum Deployen? Ab 2,48 $/Monat.

Unabhängige Cloud seit 2008. AMD EPYC, NVMe, 40 Gbps. 14 Tage Geld-zurück-Garantie.