Zum Hauptinhalt springen
S-EDV news
← Alle News
Docker 27.08.2026 · 5 min Lesezeit

Dozzle installieren: Docker-Logs live im Browser mit Docker Compose

Dozzle zeigt Docker-Container-Logs live im Browser, ganz ohne Log-Persistenz und mit einem rund 7 MB kleinen Image. Diese Anleitung erklärt die Docker-Compose-Installation, Suche per Regex und SQL, Swarm- und Agent-Modus für mehrere Hosts sowie die nötigen Sicherheitsmaßnahmen für den Docker-Socket.

Dozzle-Dashboard mit live gestreamten Docker-Container-Logs im Browser

Wer mehrere Docker-Container betreibt, kennt die Kette aus docker logs -f container1, Terminal wechseln, nächster Container. Ein zentraler Log-Viewer im Browser spart diesen Aufwand. Dozzle ist eine der schlankesten Lösungen im Docker-Ökosystem, aktueller Stand v10.7.4 vom 23. August 2026.

Wann Dozzle die richtige Wahl ist

Dozzle deckt einen konkreten Fall ab: Live-Logs mehrerer Container im Browser, ohne eine schwergewichtige Logging-Plattform. Typische Situationen für den Einsatz:

  • Kleine bis mittlere Docker-Umgebungen, wo ELK oder Grafana Loki überdimensioniert wäre
  • Homelab- und Selfhosting-Setups mit mehreren Containern
  • Debugging während der Entwicklung mehrerer gleichzeitig laufender Services
  • Docker-Swarm-Cluster, bei denen Logs über mehrere Knoten verteilt anfallen
  • Mehrere physisch getrennte Docker-Hosts, die zentral überwacht werden sollen
  • Teams, die eine einfache Multi-User-Anmeldung für den Log-Zugriff benötigen

Wer Logs dauerhaft archivieren, Volltextindizes über Monate aufbauen oder Alerting über historische Daten fahren will, braucht Grafana Loki, Elasticsearch oder einen kommerziellen Log-Aggregator. Dozzle ist kein Ersatz dafür.

Was Dozzle ist und wie es funktioniert

Dozzle ist Open Source, in Go geschrieben, mit Vue-Frontend, entwickelt von Amir Raminfar unter der MIT-Lizenz. Auf GitHub zählt das Repository aktuell rund 14.200 Sterne, deutlich mehr als frühere Schätzungen von rund 6.000.

Der Kern liest Container-Logs direkt über die Docker-API und streamt sie live in den Browser. Es gibt keine Log-Persistenz: Dozzle zeigt nur, was Docker gerade liefert. Nach einem Neustart mit rotierten Logs sind ältere Einträge weg, sofern Docker sie nicht vorhält.

Unterstützt werden Docker Engine ab Version 19.03 (API 1.40 aufwärts), Docker Swarm sowie Kubernetes über DOZZLE_MODE=k8s seit Version 8.11. Auch Colima und Podman funktionieren, bei Podman ist zusätzlich die Aktivierung des Remote-Sockets nötig.

Image-Größe und Varianten

Ein zentrales Argument ist die Image-Größe. Laut README ist das Standard-Image rund 7 MB komprimiert, gebaut FROM scratch mit nur der Go-Binary, ohne Betriebssystem oder Shell. Wer eine Shell benötigt, etwa für einen /bin/sh-Wrapper über den Entrypoint, kann auf die Alpine-Variante ausweichen.

TagBasisEinsatzzweck
latestscratch, ca. 7 MBNeuester Release, für Produktion nicht empfohlen
v10.7.4scratch, ca. 7 MBExakte Version, reproduzierbar
v10scratch, ca. 7 MBNeueste Version der Hauptversion
alpineAlpine, etwas größerMit Shell, für Sonderfälle wie Unraid-Wrapper
masterscratch, ca. 7 MBUnveröffentlicht, nicht für Produktion

Docker-Compose-Installation Schritt für Schritt

Die folgende Compose-Datei folgt dem offiziellen Getting-Started-Beispiel aus dem README.

services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dozzle_data:/data
    ports:
      - 8080:8080
volumes:
  dozzle_data:

Vorgehen:

  1. Ordner anlegen, zum Beispiel mkdir dozzle && cd dozzle
  2. Datei docker-compose.yml mit obigem Inhalt erstellen
  3. Container starten mit docker compose up -d
  4. Dozzle im Browser unter http://server-ip:8080 aufrufen

Für einen schnellen Test ohne Compose-Datei reicht auch der direkte docker run-Befehl aus der offiziellen Dokumentation:

docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -v dozzle_data:/data -p 8080:8080 amir20/dozzle:latest

Sicherheitswarnung: Der Docker-Socket ist keine Kleinigkeit

Wer /var/run/docker.sock mountet, gibt dem Container potenziell vollen Zugriff auf den Docker-Daemon. Ein kompromittiertes Dozzle könnte theoretisch Container starten oder auf den Host durchbrechen. Wichtige Maßnahmen:

  • Socket read-only mounten: /var/run/docker.sock:/var/run/docker.sock:ro. Dozzle schreibt laut Dokumentation nicht auf den Daemon, sondern liest nur.
  • Dozzle nicht ungeschützt im Internet exponieren, sondern hinter einem Reverse-Proxy mit Auth betreiben
  • Bei Multi-Host-Szenarien den Agent-Modus statt eines exponierten Remote-Sockets nutzen
  • Wo kein Agent möglich ist, einen Docker-Socket-Proxy wie tecnativa/docker-socket-proxy vorschalten
  • Zugriff auf die Weboberfläche zusätzlich per DOZZLE_AUTH_PROVIDER absichern

Agent-Modus und Socket-Proxy als sicherere Alternativen

Für mehrere Docker-Hosts bietet Dozzle zwei Wege: den klassischen Remote-Host-Zugriff über TLS-Docker-API oder den empfohlenen Agent-Modus. Der Agent-Modus ist laut Dokumentation meist vorzuziehen, weil die Verbindung privat und selbstsigniert zwischen den Dozzle-Instanzen läuft und keine Docker-API extern exponiert wird.

Ein Agent startet auf dem Zielhost mit dem Unterbefehl agent:

services:
  dozzle-agent:
    image: amir20/dozzle:latest
    command: agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 7007:7007

Die zentrale Instanz verbindet sich per DOZZLE_REMOTE_AGENT mit einem oder mehreren Agenten:

services:
  dozzle:
    image: amir20/dozzle:latest
    environment:
      - DOZZLE_REMOTE_AGENT=agent-host:7007
    ports:
      - 8080:8080

Ein Docker-Socket-Proxy lässt sich laut Dokumentation nicht zusätzlich vor einen Agent schalten, Agenten ersetzen die Proxy-Funktion. Wer klassisches Remote-Host nutzt, kann alternativ tecnativa/docker-socket-proxy einsetzen, der ohne TLS-Zertifikate, aber mit eingeschränkten, rein lesenden Endpunkten arbeitet. Auch ein Socket-Proxy exponiert die Docker-API dem Netzwerk und muss abgesichert werden.

KriteriumAgent-ModusRemote-Host per TLS
SicherheitPrivate, selbstsignierte TLS-VerbindungErfordert eigene Zertifikatsverwaltung oder unsicher ohne TLS
PerformanceBesser bei verteilter LastSchwächer in der Oberfläche
RechteumfangVoller Docker-Zugriff des AgentsKann per Socket-Proxy eingeschränkt werden
WiederverbindungAutomatischErfordert UI-Neustart

Funktionsüberblick: Suche, Swarm-Support und Authentifizierung

Neben der Live-Ansicht bringt Dozzle laut Dokumentation mit:

  • Fuzzy-Suche über Container-Namen
  • Volltextsuche per regulärem Ausdruck
  • SQL-Engine für strukturierte Log-Abfragen
  • Split-Screen für mehrere Container-Logs
  • Live-Statistiken zu Speicher- und CPU-Nutzung
  • Mehrbenutzer-Auth inklusive Forward-Proxy-Auth, etwa mit Authelia
  • Nativer Swarm-Modus
  • Agent-Modus für Multi-Host
  • Dunkles Farbschema

Für Swarm lässt sich Dozzle als globaler Service ausrollen:

docker service create --name dozzle --env DOZZLE_MODE=swarm --mode global --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest

Für Mehrbenutzer-Anmeldung bietet Dozzle einen dateibasierten Auth-Provider, aktiviert über DOZZLE_AUTH_PROVIDER=simple. Benutzer stehen in users.yml, der Passwort-Hash lässt sich per Dozzle-Binary erzeugen:

docker run -it --rm amir20/dozzle generate admin --password meinPasswort --email admin@example.com --name "Admin"

Dozzle nutzt inzwischen Bcrypt statt des früher schwächeren SHA-256. Bestehende Installationen sollten Hashes mit generate neu erzeugen.

Grenzen von Dozzle

Dozzle deckt nicht jeden Logging-Fall ab:

  • Dauerhafte Archivierung von Logs über Wochen oder Monate
  • Volltextsuche über historische, bereits rotierte Logs
  • Komplexes Alerting auf Basis von Logmustern über längere Zeiträume
  • Zentrale Log-Aggregation aus nicht-containerisierten Systemen

Dafür eignet sich Grafana Loki mit Promtail, das Logs dauerhaft speichert und durchsuchbar macht.

Erste Prüfung und Maßnahmen vor dem Produktiveinsatz

Checkliste vor dem produktiven Einsatz:

  • Version prüfen: docker exec dozzle dozzle --version, aktuell v10.7.4
  • Statt latest eine feste Version wie v10.7.4 pinnen
  • Docker-Socket wo möglich read-only mounten
  • Port 8080 per Firewall oder Reverse-Proxy einschränken
  • Auth über DOZZLE_AUTH_PROVIDER=simple oder Forward-Proxy-Auth aktivieren
  • Bei mehreren Hosts Agent-Modus statt offener Remote-API bevorzugen

Passende Anleitungen auf S-EDV

Quellen

DozzleDockerDocker ComposeLog-ViewerMonitoringDocker SwarmSelfhosting