Dozzle: The Lightweight and Powerful Real-Time Docker Log Viewer
Dozzle is an open-source tool used to monitor Docker container logs in a simple and intuitive way via a web interface.
When managing Docker containers on a server, having to use docker compose logs -f for each container can be a time-consuming process, especially when you have many running.
Dozzle solves this problem by offering a real-time, lightweight (the Docker image is only about 7 MB compressed), and secure dashboard that allows you to view the logs of all containers in one place.
Dozzle is self-hosted, so your logs remain private on your infrastructure.
Key Features of Dozzle Link to heading
- Real-time streaming: container logs are displayed live without the need for manual refreshes.
- Advanced search and filters: supports full-text searches to quickly identify errors, warnings, or specific strings.
- Multi-container view: ability to monitor logs from multiple containers simultaneously in split-screen mode.
- Optional shell access: allows you to connect to a container’s shell directly from your browser.
- Container actions: start, stop, and restart containers from the interface.
- Multi-host support: secure monitoring of remote hosts via dedicated agents.
- SQL analysis: SQL queries on logs directly in the browser thanks to DuckDB in WebAssembly.
- Security: support for authentication via reverse proxy (basic auth, OAuth) and secure agents for remote connections.
Step-by-Step Installation and Configuration Link to heading
The installation and usage procedure on a local Docker environment is illustrated here. The simplest deployment method is Docker Compose. Here is a sample docker-compose.yml file:
services:
dozzle:
container_name: dozzle
image: amir20/dozzle:v8
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Start with:
docker compose up -d
Dozzle is accessible at http://localhost:8080.
If you install it on a server, it is recommended to protect access with a reverse proxy (such as Nginx or Traefik) and authentication.
I have published a complete example on my GitHub repository where I have configured Dozzle with its native authentication, all commands enabled, and an application container to test its functionality.
Next Steps Link to heading
Dozzle easily integrates into more complex Docker stacks for advanced monitoring.
- Reverse Proxy Protection: use Traefik or Nginx to expose Dozzle on a domain with HTTPS (Let’s Encrypt) and add authentication (basic auth, OAuth2 with Authelia or Authentik).
- Multi-Host Monitoring: deploy Dozzle agents on remote hosts for a centralized dashboard that aggregates logs from multiple Docker servers.
- Integration into Existing Stacks: add Dozzle to compositions with Portainer, Watchtower, or Homarr for a comprehensive control panel.
- Cluster Environments: native deployment in Docker Swarm or Kubernetes for scalability.
These integrations make Dozzle part of a robust and secure container management ecosystem.
Conclusions Link to heading
Dozzle is primarily used for local and remote monitoring of Docker logs, rapid debugging of containerized applications, and real-time analysis in development and light production environments.
Key benefits:
- Lightweight and high performance.
- Intuitive interface with advanced features such as search and split-view.
- Total privacy as it is self-hosted.
- Broad compatibility with Docker, Swarm, Kubernetes, and Podman.
Limitations:
- Not ideal for very large enterprise-scale logs (lacks long retention or advanced alerting features).
- Depends on Docker socket for local access, or agents for remote access.
- Optional features (shell, actions) require careful configuration for security.