Doku: Monitorización de espacio en Docker
Introducción
Doku es una aplicación web ligera orientada a visualizar el consumo real de almacenamiento en entornos basados en contenedores Docker. Permite identificar rápidamente qué componentes están ocupando espacio —imágenes, contenedores, volúmenes, cachés o logs— cuando el sistema comienza a acercarse al límite de disco.
En infraestructuras donde se despliegan múltiples servicios mediante Docker Compose y se generan capas, volúmenes persistentes y caches de compilación, el uso acumulado puede crecer de forma silenciosa. Doku aporta visibilidad directa sin necesidad de inspecciones manuales repetitivas.
Enfoque general
Doku se ejecuta como un contenedor adicional dentro del propio host Docker. Desde ahí consulta el estado del daemon y analiza el sistema de archivos del host en modo solo lectura para calcular tamaños reales.
El acceso al socket de Docker le permite obtener información estructural (imágenes, contenedores, builder cache), mientras que el montaje del sistema raíz en modo read-only permite medir el peso efectivo en disco, incluyendo overlay2 y logs.
No realiza modificaciones ni operaciones destructivas; su función es puramente observacional.
Requisitos previos
- Host Linux con Docker operativo.
- Permisos suficientes para montar
/var/run/docker.sock. - Acceso de solo lectura al sistema raíz para análisis de almacenamiento.
Desarrollo
Qué se ha implementado y por qué
Se despliega Doku como servicio independiente dentro del stack principal. La decisión de ejecutarlo con user: 0:0 responde a la necesidad de lectura completa del sistema de archivos y acceso a información de logs y capas overlay.
El puerto externo se expone en 9092 para evitar colisiones con otros servicios internos que ya utilizan rangos estándar.
Se establece un límite de memoria moderado (2 GB) para evitar consumo descontrolado en servidores con recursos ajustados.
Configuración utilizada
La definición completa del servicio se mantiene versionada en Gitea:
Validación
Comprobaciones realizadas tras el despliegue:
- Acceso HTTP correcto en
http://<host>:9092. - Visualización de imágenes, contenedores y volúmenes sin errores.
- Detección correcta del tamaño de logs y capas overlay.
- Sin mensajes críticos en los logs del contenedor.
Decisiones importantes
- El montaje del sistema raíz se realiza exclusivamente en modo lectura para minimizar superficie de riesgo.
- No se expone públicamente; el acceso se limita a red interna o administración.
- No sustituye a herramientas de limpieza (
docker system prune), sino que facilita decidir cuándo y dónde intervenir.
Resumen breve
Doku proporciona visibilidad directa del consumo real de almacenamiento en Docker, permitiendo identificar rápidamente qué componente está ocupando espacio antes de realizar tareas de limpieza o mantenimiento.