¿Te cansas de ejecutar docker logs en la terminal cada vez que necesitas revisar qué está pasando en tus contenedores? Dozzle Docker Compose es la solución definitiva para monitorizar los logs de tus contenedores Docker en tiempo real desde una interfaz web limpia, rápida y sin complicaciones. En esta guía completa aprenderás a instalar y configurar esta herramienta imprescindible para cualquier servidor self-hosted.
Qué es Dozzle Docker Compose y Por Qué lo Necesitas
Dozzle Docker Compose es un visor de logs ligero y open-source diseñado específicamente para contenedores Docker. A diferencia de soluciones complejas como ELK Stack o Grafana Loki, Dozzle te ofrece una interfaz web minimalista que simplemente funciona. Con apenas 7 MB de tamaño, esta aplicación te permite ver logs en tiempo real de todos tus contenedores sin almacenar datos en disco ni consumir recursos innecesarios.
La principal ventaja de Dozzle Docker Compose es su simplicidad: no necesitas configurar bases de datos, índices o sistemas de almacenamiento. Simplemente despliegas el contenedor y accedes a tus logs al instante desde cualquier navegador web.
Características Principales de Dozzle
Esta solución se ha convertido en una herramienta esencial en la comunidad homelab gracias a sus características únicas:
- Monitoreo en tiempo real: Visualiza logs mientras se generan, sin retrasos ni recargas
- Búsqueda inteligente: Filtra logs con búsqueda difusa, expresiones regulares o incluso consultas SQL mediante DuckDB
- Pantalla dividida: Monitoriza múltiples contenedores simultáneamente en una sola vista
- Estadísticas de recursos: Observa uso de CPU y memoria de cada contenedor en vivo
- Multi-host: Conecta y gestiona logs de varios servidores Docker desde una interfaz centralizada
- Acceso a shell: Ejecuta comandos dentro de contenedores directamente desde el navegador
- Tema oscuro: Interfaz moderna y cómoda para largas sesiones de troubleshooting
- Zero almacenamiento: No guarda logs en disco, solo streaming en vivo
Instalación con Docker Compose: Configuración Básica
La instalación de Dozzle Docker Compose es extremadamente sencilla. Crea un archivo docker-compose.yml con la siguiente configuración:
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- DOZZLE_LEVEL=info
- DOZZLE_TAILSIZE=300
- DOZZLE_FILTER=status=running
Despliega el servicio ejecutando:
docker-compose up -d
Accede a la interfaz web navegando a http://tu-servidor:8080. Inmediatamente verás todos tus contenedores en ejecución y podrás monitorizar sus logs en tiempo real.
Configuración Avanzada: Autenticación y Seguridad
Para entornos de producción o servidores expuestos a internet, es fundamental proteger tu instalación de Dozzle Docker Compose. El servicio soporta autenticación básica y autenticación mediante proxy reverso.
Autenticación con Usuario y Contraseña
Configura autenticación añadiendo estas variables de entorno:
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- DOZZLE_USERNAME=admin
- DOZZLE_PASSWORD=tu_contraseña_segura
- DOZZLE_LEVEL=info
Integración con Traefik y SSL Automático
Si usas Traefik como proxy inverso, puedes exponer Dozzle con HTTPS automático:
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.dozzle.rule=Host(`logs.tudominio.com`)"
- "traefik.http.routers.dozzle.entrypoints=websecure"
- "traefik.http.routers.dozzle.tls.certresolver=letsencrypt"
- "traefik.http.services.dozzle.loadbalancer.server.port=8080"
networks:
traefik:
external: true
Monitoreo Multi-Host con Dozzle Docker Compose
Una de las funcionalidades más potentes es la capacidad de monitorizar múltiples servidores Docker desde una sola interfaz. Esto se logra mediante el modo Agent.
Servidor Principal (Dashboard)
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle-main
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- DOZZLE_REMOTE_HOST=tcp://servidor-remoto:7007
Servidor Remoto (Agent)
version: '3.8'
services:
dozzle-agent:
image: amir20/dozzle:latest
container_name: dozzle-agent
restart: unless-stopped
command: agent
ports:
- "7007:7007"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Con esta configuración puedes gestionar logs de toda tu infraestructura desde un único punto de acceso.
Casos de Uso Prácticos de Dozzle
Dozzle Docker Compose brilla especialmente en escenarios reales de administración:
- Debugging rápido: Cuando un contenedor falla al iniciar, ves el error exacto al instante sin comandos de terminal
- Monitoreo de producción: Observa logs de aplicaciones web, APIs o servicios críticos en tiempo real
- Troubleshooting colaborativo: Comparte la URL con tu equipo para que vean logs sin necesidad de acceso SSH
- Análisis de rendimiento: Detecta patrones de errores o warnings buscando en logs con expresiones regulares
- Homelab management: Centraliza el monitoreo de todos tus servicios self-hosted (Nextcloud, Plex, Jellyfin, etc.)
Dozzle vs Alternativas: Comparativa
Existen varias alternativas para gestionar logs de Docker, pero Dozzle Docker Compose destaca por su equilibrio entre simplicidad y funcionalidad:
| Herramienta | Complejidad | Almacenamiento | Recursos | Búsqueda |
|---|---|---|---|---|
| Dozzle | Mínima | No requiere | 7 MB RAM | Regex + SQL |
| ELK Stack | Alta | Elasticsearch | 2-4 GB RAM | Avanzada |
| Grafana Loki | Media | Local/S3 | 500 MB RAM | LogQL |
| Portainer Logs | Baja | No | 150 MB RAM | Básica |
Para homelabs y pequeños servidores, la herramienta es la opción ideal por su consumo de recursos mínimo y facilidad de uso.
Optimización y Mejores Prácticas
Para aprovechar al máximo tu instalación, considera estas recomendaciones:
- Limita los logs mostrados: Usa
DOZZLE_TAILSIZEpara controlar cuántas líneas se cargan inicialmente (por defecto 300) - Filtra contenedores: Con
DOZZLE_FILTERpuedes mostrar solo contenedores específicos o en ciertos estados - Usa modo solo lectura: Monta el socket Docker como
:ropara prevenir modificaciones accidentales - Configura log rotation en Docker: Evita que los logs de tus contenedores crezcan infinitamente agregando
logging.driver: json-fileylogging.options.max-size: 10men tus servicios - Protege con autenticación: Siempre activa usuario/contraseña o integra con Authelia si expones el servicio públicamente
Resolución de Problemas Comunes
Error: «Permission Denied» al Acceder al Socket Docker
Si ves este error, verifica los permisos del socket:
sudo chmod 666 /var/run/docker.sock
O añade el usuario al grupo docker:
sudo usermod -aG docker $USER
No se Muestran Logs de Algunos Contenedores
Asegúrate de que tu configuración no incluye filtros restrictivos. Elimina temporalmente DOZZLE_FILTER para verificar.
Logs Muy Lentos o Interfaz Congelada
Contenedores con logs extremadamente verbosos pueden saturar la interfaz. Reduce DOZZLE_TAILSIZE a 100 o menos y considera implementar log rotation en los contenedores problemáticos.
Integración con Otros Servicios Docker Compose
Dozzle Docker Compose complementa perfectamente otras herramientas de gestión Docker. Combínalo con:
- Portainer: Para gestión visual de contenedores mientras usas Dozzle para logs especializados
- Uptime Kuma: Monitoriza disponibilidad de servicios y usa Dozzle para investigar caídas
- Grafana: Visualiza métricas de rendimiento y correlaciónalas con logs en Dozzle
- Watchtower: Actualiza contenedores automáticamente y verifica el proceso en los logs
Conclusión: Dozzle Docker Compose es Imprescindible
Si gestionas contenedores Docker, ya sea en un homelab personal o en servidores de producción, Dozzle Docker Compose debería ser uno de los primeros servicios que despliegues. Su combinación de simplicidad, rendimiento y funcionalidades avanzadas lo convierte en la herramienta definitiva para monitorear logs sin complicaciones.
Con apenas 7 MB de huella de memoria, sin requisitos de almacenamiento y una interfaz web instantánea, no existe razón para seguir usando docker logs manualmente. Despliega Dozzle hoy mismo y transforma la manera en que gestionas tus contenedores.
Preguntas Frecuentes sobre Dozzle Docker Compose
¿Dozzle almacena los logs en algún sitio?
No, Dozzle solo realiza streaming en tiempo real. No almacena logs en disco ni en bases de datos. Si necesitas búsquedas históricas, considera soluciones como ELK Stack o Grafana Loki.
¿Puedo usar Dozzle con Docker Swarm o Kubernetes?
Sí, Dozzle soporta tanto Docker Swarm como Kubernetes. La documentación oficial incluye ejemplos de configuración para estos entornos.
¿Es seguro exponer Dozzle a internet?
Solo con autenticación robusta y HTTPS. Nunca expongas la interfaz sin protección, ya que da acceso a logs que pueden contener información sensible. Usa siempre un proxy inverso con SSL y considera soluciones de autenticación como Authelia.
¿Cuántos recursos consume Dozzle?
Dozzle es extremadamente ligero, consumiendo típicamente menos de 10 MB de RAM en reposo. El uso de CPU es mínimo excepto durante búsquedas intensivas o al visualizar logs muy verbosos.
¿Puedo personalizar la interfaz de Dozzle?
Dozzle incluye tema oscuro por defecto y algunos ajustes de visualización. Para personalizaciones más profundas tendrías que modificar el código fuente, disponible en GitHub bajo licencia MIT.
