Skip to content

Dozzle vs Grafana Loki ​

Loki is a log store. A collector ships every log line into it, Loki keeps them for as long as you configure, and Grafana is where you query them. Dozzle stores nothing: it reads logs straight from Docker, the same ones docker logs shows, and streams them to your browser.

So the real question is whether you need to keep logs somewhere other than Docker.

At a glance ​

DozzleGrafana + Loki
What you runOne containerLoki, Grafana, and a collector such as Grafana Alloy
Where logs liveIn Docker, as it already keeps themCopied into Loki's own storage
How far backAs far as Docker's log rotation keepsAs long as you set Loki's retention
Live tailThe default viewAvailable in Grafana Explore
QueryingSearch, regular expressions, SQL on JSONLogQL, including metrics computed from logs
DashboardsContainer CPU and memoryAny dashboard you build in Grafana
AlertsLog, metric and event alertsGrafana alerting on LogQL queries
Logs from outside DockerNoYes: files, systemd journal, Kubernetes and more

When to use Loki instead ​

Pick Loki when you need logs after Docker has rotated them away, when a container is removed and its logs must stay, or when you need to search across weeks of history. It is also the better fit if you already run Grafana and want logs next to your metrics, or need logs from things that are not containers.

Plan for the setup. Promtail, the collector most older guides use, reached end of life in March 2026, so new installs use Grafana Alloy or the Loki Docker driver.

When Dozzle fits better ​

Pick Dozzle when you want to see what a container is doing now, or what it did in the last few hours or days, without running a log pipeline. There is no storage to size, no retention to tune and no query language to learn. It starts in seconds. See Getting Started.

How much history Dozzle can show depends on Docker's log rotation. To keep more, raise the limits in /etc/docker/daemon.json:

json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "5"
  }
}

The new limits apply to containers created after Docker restarts.

Use both ​

Many setups run Loki for history and Dozzle for everyday debugging. They don't get in each other's way: Dozzle reads from Docker, and Alloy reads from Docker. If you switch containers to the Loki Docker driver instead, keep Docker's dual logging on (the default), so docker logs, and therefore Dozzle, can still read them. Docker then keeps that copy in a cache sized by cache-max-size and cache-max-file (5 files of 20 MB by default), not by the max-size above.

Released under the MIT License. Open sourced and sponsored by Docker OSS.