Dozzle: Container-Logs live im Browser, ohne Logarchiv
Echtzeit-Protokollanzeige für Container. Unterstützt Docker, Swarm und K8s.
Auf einen Blick
- Was ist das?
- amir20/dozzle zeigt Docker-Logs in Echtzeit an und speichert nichts. Die Analyse ordnet Agent-Modus auf Port 7007, die Image-Tags bis v10.7.5, das Podman-Setup und die Grenzen des reinen Live-Konzepts ein.
- Für wen ist es gedacht?
- Dozzle passt zu Teams, die beim Debuggen sofort in die Ausgaben mehrerer Container schauen wollen und kein Archiv brauchen. Wer Retention, Volltextsuche über Wochen oder eine historische Alarmierung benötigt, ist mit Kibana oder Loki besser bedient.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Das Repository hat innerhalb des letzten Tages neue Commits erhalten.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Go, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Wofür Dozzle gebaut ist: Live-Ansicht statt Logarchiv
Dozzle ist eine schlanke Webanwendung, die Container-Logs anzeigt, während sie entstehen. Das README formuliert die Grenze selbst: Es werden keine Logdateien gespeichert, der Zweck ist reine Live-Beobachtung. Wer Ausgaben von letzter Woche durchsuchen will, braucht ein anderes Werkzeug. Die Repository-Beschreibung nennt Docker, Swarm und K8s als unterstützte Umgebungen, das README dokumentiert jedoch nur den Swarm- und den Agent-Modus. Für Kubernetes findet sich dort kein Abschnitt, obwohl die Metadaten es aufführen.
Geschrieben ist das Projekt in Go, veröffentlicht unter der MIT-Lizenz. Der letzte Push im Repository datiert vom 28. August 2026. Als neueste Veröffentlichung wird v10.7.5 geführt, davor liegen v10.7.4 und v10.7.3. Wer die Versionspolitik einschätzen will, findet damit drei Releases innerhalb von gut einer Woche im August 2026, was auf einen kurzen Auslieferungstakt hindeutet.
Fuzzy-Suche, Regex und die SQL-Engine in Dozzle
Die Suche arbeitet auf zwei Ebenen. Für Containernamen gibt es eine Fuzzy-Suche, die auch bei sehr vielen Containern schnell zum Ziel führen soll; das README gibt an, dass Dozzle mit hunderten Containern getestet wurde. Innerhalb der Logausgabe stehen eine Regex-Suche und zusätzlich SQL-Abfragen bereit. Letztere laufen über eine eigene Engine, die auf dozzle.dev unter dem Pfad /guide/sql-engine beschrieben wird. Genaueres über deren Funktionsumfang, etwa welche SQL-Konstrukte erlaubt sind, steht im README nicht.
Dazu kommen ein Split-Screen für mehrere Logströme gleichzeitig, Live-Statistiken zu Speicher und CPU, ein Dark Mode und ein geringer Speicherbedarf, den das README als Merkmal nennt. Zahlen zum Speicherverbrauch liefert die Dokumentation nicht, eine Größenordnung lässt sich nur aus der Imagegröße ableiten.
Dozzle starten: Docker-Socket, /data-Volume und Port 8080
Der Startbefehl aus dem README mountet den Unix-Socket des Docker-Daemons und ein benanntes Volume für Daten: docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -v dozzle_data:/data -p 8080:8080 amir20/dozzle:latest. Danach ist die Oberfläche unter http://localhost:8080/ erreichbar. Die Compose-Variante benutzt dieselben beiden Mounts und legt dozzle_data als Volume an, sonst unterscheidet sie sich nicht vom Kommandozeilenaufruf.
Die beiden Mounts haben unterschiedliche Folgen. Ohne den Socket sieht Dozzle schlicht keine Container, ohne das /data-Volume sind Einstellungen und Nutzerdaten nach einem Neustart weg. Wer Dozzle hinter einem Reverse Proxy betreibt, findet die dazu nötigen Hinweise nicht im README, sondern in der Authentifizierungsdokumentation auf dozzle.dev.
Image-Tags von amir20/dozzle zwischen v10.7.5 und master
Die Tags sind gestaffelt. latest zeigt auf die jeweils neueste Veröffentlichung, v10.6.15 pinnt exakt eine Version, v10.6 bleibt innerhalb einer Nebenversion und nimmt nur Fehlerkorrekturen mit, v10 folgt der Hauptversion und bringt auch neue Funktionen. Daneben existieren Alpine-Varianten wie v10.6.15-alpine, ein master-Tag, der bei jedem Push gebaut wird, sowie pr-Tags wie pr-1234 zum Testen eines noch nicht veröffentlichten Pull Requests.
Die Standard-Images entstehen FROM scratch und enthalten nur das Binary. Deshalb sind sie komprimiert rund 7 MB groß und haben keine Shell. Alpine braucht man laut README nur, wenn die Umgebung einen #!/bin/sh-Wrapper über den Entrypoint legt, etwa beim Tailscale-Umschalter pro Container unter Unraid. Für den Produktionseinsatz rät das README ausdrücklich von latest und master ab: latest wandert bei jedem Release weiter, master ist unveröffentlichter Code.
Swarm-Modus über DOZZLE_MODE und Agent-Modus auf Port 7007
Im Swarm läuft Dozzle als globaler Dienst: 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. Der Modus wird über eine Umgebungsvariable gesetzt, nicht über ein Unterkommando. Das passt zur Konfiguration insgesamt, die dem 12-Faktor-Modell folgt: Einstellungen kommen über CLI-Flags oder Umgebungsvariablen, deren vollständige Liste auf dozzle.dev steht.
Für mehrere Hosts ist der Agent-Modus gedacht. Er startet mit dem angehängten Argument agent und exponiert Port 7007: docker run -v /var/run/docker.sock:/var/run/docker.sock -p 7007:7007 amir20/dozzle:latest agent. Für den Zugriffsschutz gibt es dateibasierte Authentifizierung oder Forward-Proxy-Autorisierung, als Beispiel nennt die Dokumentation Authelia. Google Analytics erfasst anonyme Nutzerkonfigurationen, die in einem öffentlichen Data-Studio-Dashboard einsehbar sind; --no-analytics schaltet die Erfassung ab.
Podman mit Dozzle: remoteSocket prüfen und engine-id anlegen
Dozzle verhandelt die Docker-API automatisch, was laut README mit den meisten Konfigurationen funktioniert, einschließlich Colima und Podman. Voraussetzung ist Docker Engine 19.03 oder neuer mit API-Version 1.40 oder höher. Ältere Daemons werden vom zugrundeliegenden Docker-SDK nicht unterstützt, entsprechende Installationen bleiben außen vor.
Podman hat standardmäßig keinen Hintergrundprozess. Mit podman info prüft man, ob unter dem Schlüssel remoteSocket ein Pfad wie /run/user/1000/podman/podman.sock mit exists: true erscheint. Fehlt der Eintrag, verweist das README auf die Socket-Aktivierung von Podman. Danach startet Dozzle mit podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 docker.io/amir20/dozzle:latest. Zusätzlich muss unter /var/lib/docker eine Datei engine-id mit einer UUID liegen, erzeugbar mit uuidgen > engine-id. Ohne diese Datei meldet Dozzle einen host-not-found-Fehler, weil Podman anders als Docker selbst keine engine-id erzeugt.
Wann Dozzle das falsche Werkzeug ist: Kibana, Papertrail, Loggly
Die wichtigste Einschränkung steht im README selbst: Eine Offline-Suche gibt es nicht. Dozzle zeigt, was gerade passiert, und bewahrt nichts davon auf. Wer Aufbewahrungsfristen, Auswertungen über Wochen oder Alarmierung auf historische Muster braucht, bekommt hier nichts. Das README verweist für vollständige Suchfunktionen ausdrücklich auf Loggly, Papertrail oder Kibana. Diese Produkte verfolgen einen anderen Ansatz: Sie nehmen Logs auf, indizieren sie und machen sie durchsuchbar, verlangen dafür Speicher und Betriebsaufwand, den ein reiner Live-Viewer nicht hat.
Eine Alternative aus dem eigenen Haus nennt das README ebenfalls: dtop, ein top-ähnliches Werkzeug zur Containerüberwachung, das mit Dozzle zusammenarbeitet und direkt auf die Container-Logs verlinkt. Wer lieber im Terminal als im Browser arbeitet, findet dort den kürzeren Weg zu denselben Ausgaben.
Dozzle selbst bauen: Go 1.25, pnpm, protoc und Port 3100
Die Codebasis besteht aus einem Go-Backend, das mit Docker spricht, und einem Vue-Frontend im Browser. Für reine Korrekturen an der Dokumentation ist laut README keine lokale Einrichtung nötig. Wer Code ändern will, braucht Go 1.25 oder neuer, Node.js mit pnpm und protoc. Auf macOS lassen sich alle drei per Homebrew installieren, unter Debian und Ubuntu über apt plus eine globale pnpm-Installation.
Nach dem Klonen folgen pnpm install, go install tool und einmal make generate, danach startet make dev die Umgebung auf Port 3100. Änderungen an assets/pages/index.vue landen sofort im Browser, Backend-Änderungen starten den Server neu. Als typische Fehlerquellen nennt das README fehlenden Zugriff auf den Docker-Socket und ein protoc, das nicht im PATH liegt. Rückfragen laufen über die GitHub Discussions des Projekts.
Redaktionelles Fazit
Dozzle passt zu Teams, die beim Debuggen sofort in die Ausgaben mehrerer Container schauen wollen und kein Archiv brauchen. Wer Retention, Volltextsuche über Wochen oder eine historische Alarmierung benötigt, ist mit Kibana oder Loki besser bedient. Vor der Einführung sollte der Agent-Modus auf Port 7007 gegen die eigene Host-Topologie geprüft werden, außerdem die Tatsache, dass das README keinen Kubernetes-Pfad dokumentiert, obwohl die Repository-Beschreibung K8s nennt.
Community-Notizen