Dockge Docker Compose es el gestor de stacks más moderno y reactivo del mercado. En esta guía completa, aprenderás a desplegar Dockge de manera profesional, gestionar múltiples hosts desde una única interfaz, y convertir comandos docker run a YAML automáticamente sin necesidad de línea de comandos.
Si ya estás usando Portainer o gestionas tus contenedores manualmente, Dockge te ofrece una alternativa ligera y enfocada exclusivamente en Docker Compose con una interfaz inspirada en Uptime Kuma.
¿Qué es Dockge?
Dockge es un gestor web autohospedado para archivos docker-compose.yaml desarrollado por Louis Lam, el mismo creador de Uptime Kuma. A diferencia de otros gestores de contenedores, Dockge se centra exclusivamente en la gestión de stacks de Docker Compose, ofreciendo una experiencia de usuario moderna y reactiva.
El nombre «Dockge» (pronunciado «dŏk-gā») proviene de la combinación de «Docker» y «Ge» (舵 en chino), que significa «timón» o «gobernador», reflejando perfectamente su función como centro de control para tus stacks.
Características Principales
- Editor integrado: Modifica archivos compose.yaml directamente desde el navegador con sintaxis resaltada
- Terminal web interactivo: Accede a logs y ejecuta comandos sin SSH
- Soporte multi-agente: Gestiona stacks en diferentes hosts Docker desde una única interfaz
- Conversión docker run → YAML: Transforma comandos docker run en configuraciones compose automáticamente
- Arquitectura basada en archivos: Los compose.yaml permanecen en tu sistema de archivos, accesibles vía CLI tradicional
- Actualizaciones de imágenes: Descarga nuevas versiones con un solo clic
- Interfaz reactiva: Progreso en tiempo real y actualización automática de estado
Casos de Uso Ideales
Dockge es perfecto si:
- Gestionas múltiples stacks de Docker Compose en varios servidores
- Prefieres una interfaz gráfica ligera sobre la línea de comandos
- Necesitas convertir comandos docker run heredados a Compose V2
- Buscas una alternativa más simple que Portainer enfocada solo en Compose
- Quieres colaborar con tu equipo sin compartir acceso SSH
No es adecuado si: Necesitas gestionar contenedores individuales sin Compose, configurar redes Docker avanzadas manualmente, o administrar swarms/Kubernetes.
Arquitectura de Dockge Docker Compose
Dockge sigue una arquitectura cliente-servidor simple pero potente:
- Servidor principal: Aplicación Node.js + Vue.js que escucha en puerto 5001 (por defecto)
- Directorio de stacks: Carpeta
/opt/stacksdonde se almacenan los compose.yaml organizados por subdirectorios - Socket Docker: Comunicación directa con el daemon de Docker vía
/var/run/docker.sock - Agentes remotos (opcional): Instancias adicionales de Dockge en otros hosts para gestión centralizada
El flujo de trabajo típico es:
- Usuario accede a la interfaz web de Dockge
- Crea/edita un stack en el editor integrado
- Dockge guarda el compose.yaml en
/opt/stacks/nombre-stack/ - Ejecuta
docker compose up -dautomáticamente - Monitorea el estado y logs en tiempo real
Todo esto sin perder compatibilidad con Docker Compose CLI: puedes editar los archivos manualmente y Dockge reflejará los cambios.
Requisitos Previos
Antes de instalar Dockge, asegúrate de cumplir con estos requisitos:
Software Requerido
- Docker Engine: Versión 20.10 o superior
- Docker Compose: V2 (plugin de Docker, no standalone)
- Sistema operativo: Ubuntu 20.04+, Debian 11+, CentOS 8+, Fedora 34+, ArchLinux, o Raspbian (Bullseye+)
Para verificar tus versiones:
docker --version
# Docker version 24.0.7
docker compose version
# Docker Compose version v2.23.3
Hardware Mínimo
- CPU: 1 core (2+ recomendado para múltiples stacks)
- RAM: 512 MB (1 GB recomendado)
- Disco: 500 MB para Dockge + espacio para tus stacks
- Red: Puerto 5001 disponible (configurable)
Dockge es extremadamente ligero: la imagen Docker pesa aproximadamente 80 MB y consume menos de 50 MB de RAM en reposo.
Instalar Dockge Docker Compose Paso a Paso
La instalación oficial de Dockge Docker Compose es sorprendentemente simple. Sigue estos pasos para tener tu gestor funcionando en menos de 5 minutos.
Paso 1: Crear Directorios de Trabajo
Primero, crea las carpetas donde Dockge almacenará sus datos y los stacks:
mkdir -p /opt/dockge /opt/stacks
cd /opt/dockge
/opt/dockge: Carpeta de la aplicación Dockge/opt/stacks: Directorio raíz para todos tus stacks Docker Compose
Paso 2: Descargar el Docker Compose de Dockge
Descarga el archivo compose.yaml oficial:
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
Este archivo contiene la configuración óptima para Dockge. Vamos a revisarlo:
cat compose.yaml
Paso 3: Configuración del Docker Compose
El compose.yaml incluye esta configuración por defecto:
version: "3.8"
services:
dockge:
image: louislam/dockge:1
container_name: dockge
restart: unless-stopped
ports:
- "5001:5001"
volumes:
# Socket de Docker para comunicación
- /var/run/docker.sock:/var/run/docker.sock
# Datos de Dockge (config, usuarios)
- ./data:/app/data
# Stacks de Docker Compose
- /opt/stacks:/opt/stacks
environment:
# URL externa accesible (importante para multi-agente)
- DOCKGE_STACKS_DIR=/opt/stacks
Personalización opcional:
- Puerto personalizado: Cambia
5001:5001a8080:5001si prefieres otro puerto - Ruta de stacks: Modifica
/opt/stackssi prefieres otra ubicación (recuerda actualizar ambas apariciones) - Zona horaria: Añade
- TZ=Europe/Madriden environment
Paso 4: Iniciar Dockge
Levanta el contenedor:
docker compose up -d
Verifica que está funcionando:
docker compose ps
# Output esperado:
NAME IMAGE COMMAND SERVICE STATUS PORTS
dockge louislam/dockge:1 "docker-entrypoint" dockge Up 10 seconds 0.0.0.0:5001->5001/tcp
Revisa los logs para confirmar que inició correctamente:
docker compose logs -f
# Deberías ver:
# Dockge is running on http://0.0.0.0:5001
Paso 5: Configuración Inicial
Accede a Dockge desde tu navegador:
http://tu-servidor-ip:5001
En el primer acceso, Dockge te pedirá crear un usuario administrador:
- Username: Elige un nombre de usuario (ej: admin)
- Password: Contraseña segura (mínimo 8 caracteres)
- Haz clic en Create
¡Listo! Ya tienes acceso al dashboard principal de Dockge.
Configurar Dockge Docker Compose con SSL y Dominio
Para usar Dockge Docker Compose en producción con un dominio propio y certificado SSL automático, la mejor opción es colocarlo detrás de Traefik.
Docker Compose Completo con Traefik
Crea este stack en /opt/stacks/dockge-ssl/compose.yaml:
version: "3.8"
services:
traefik:
image: traefik:v3.0
container_name: traefik
restart: unless-stopped
command:
# API y Dashboard
- --api.dashboard=true
# Proveedor Docker
- --providers.docker=true
- --providers.docker.exposedbydefault=false
# Entrypoints
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
# Let's Encrypt
- [email protected]
- --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
# Redirección HTTP → HTTPS
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik-certs:/letsencrypt
networks:
- web
labels:
# Dashboard Traefik
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`traefik.tudominio.com`)"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
- "traefik.http.routers.dashboard.service=api@internal"
dockge:
image: louislam/dockge:1
container_name: dockge
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./dockge-data:/app/data
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
- TZ=Europe/Madrid
networks:
- web
labels:
# Habilitar Traefik
- "traefik.enable=true"
# Router HTTP → HTTPS
- "traefik.http.routers.dockge.rule=Host(`dockge.tudominio.com`)"
- "traefik.http.routers.dockge.entrypoints=websecure"
- "traefik.http.routers.dockge.tls=true"
- "traefik.http.routers.dockge.tls.certresolver=letsencrypt"
# Servicio
- "traefik.http.services.dockge.loadbalancer.server.port=5001"
volumes:
traefik-certs:
driver: local
networks:
web:
external: false
Antes de levantar el stack:
- Reemplaza
[email protected]con tu email real - Cambia
dockge.tudominio.compor tu dominio - Configura un registro DNS tipo A apuntando a la IP de tu servidor
- Asegúrate de que los puertos 80 y 443 estén abiertos en tu firewall
Despliega el stack:
cd /opt/stacks/dockge-ssl
docker compose up -d
En 30-60 segundos, Traefik habrá obtenido el certificado SSL automáticamente. Accede a:
https://dockge.tudominio.com
Si ves el dashboard de Dockge con el candado verde en tu navegador, ¡la configuración SSL fue exitosa!
Gestión Avanzada de Stacks
Una vez instalado Dockge, estas son las operaciones más comunes que realizarás:
Crear un Nuevo Stack
- En el dashboard, haz clic en + Compose
- Asigna un nombre al stack (ej: «uptime-kuma»)
- Pega o escribe tu docker-compose.yaml en el editor
- Haz clic en Deploy
Dockge creará automáticamente la carpeta /opt/stacks/uptime-kuma/compose.yaml y ejecutará el stack.
Convertir Docker Run a Compose
Una de las funciones más útiles de Dockge es convertir comandos docker run heredados a formato Compose:
- Haz clic en + Compose
- En la parte superior, selecciona Convert docker run
- Pega tu comando, por ejemplo:
docker run -d -p 3000:3000 -v uptime-data:/app/data --name uptime louislam/uptime-kuma:1
- Haz clic en Convert
Dockge generará automáticamente el compose.yaml equivalente:
version: "3.8"
services:
uptime:
image: louislam/uptime-kuma:1
container_name: uptime
ports:
- "3000:3000"
volumes:
- uptime-data:/app/data
volumes:
uptime-data:
Actualizar Imágenes
Para actualizar las imágenes de un stack a la última versión:
- Abre el stack en el dashboard
- Haz clic en el menú ⋮ (tres puntos)
- Selecciona Update
- Dockge ejecutará
docker compose pull && docker compose up -d
Podrás ver el progreso de la descarga en tiempo real en el terminal integrado.
Ver Logs en Tiempo Real
Para revisar los logs de un stack:
- Abre el stack
- Haz clic en la pestaña Terminal
- Los logs se mostrarán en tiempo real
- Puedes filtrar por servicio si el stack tiene múltiples contenedores
Configuración Multi-Agente
Una de las características más potentes de Dockge es la capacidad de gestionar stacks en múltiples hosts Docker desde una única interfaz.
Caso de Uso
Imagina que tienes:
- Servidor A: Aplicaciones web (Nextcloud, WordPress, Ghost)
- Servidor B: Monitorización (Prometheus, Grafana, Uptime Kuma)
- Servidor C: Bases de datos (PostgreSQL, MySQL, Redis)
Con Dockge multi-agente, puedes controlar los stacks de los 3 servidores desde una única instalación principal.
Configuración Paso a Paso
1. Instalar Dockge en el host remoto (Servidor B):
# En Servidor B
mkdir -p /opt/dockge-agent /opt/stacks
cd /opt/dockge-agent
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
# Modificar compose.yaml para exponer el puerto
# Añadir en el servicio dockge:
# ports:
# - "5001:5001"
docker compose up -d
2. Registrar el agente en Dockge principal (Servidor A):
- Accede a tu Dockge principal
- Ve a Settings → Agents
- Haz clic en + Add Agent
- Completa el formulario:
- Name: servidor-monitorizacion
- URL: http://ip-servidor-b:5001
- Haz clic en Add
3. Desplegar stacks en el agente remoto:
Ahora, al crear un nuevo stack, verás un selector Agent donde podrás elegir en qué servidor desplegarlo.
Importante: Asegúrate de que el puerto 5001 esté accesible entre servidores (configura firewall/security groups si es necesario).
Optimización y Best Practices
Seguridad
1. No expongas Dockge directamente a Internet:
Siempre usa un reverse proxy (Traefik, Nginx, Caddy) con SSL. Si necesitas acceso remoto sin dominio, considera:
- VPN (Wireguard, Tailscale)
- Túnel SSH:
ssh -L 5001:localhost:5001 usuario@servidor - Cloudflare Tunnel (gratuito)
2. Protege el socket de Docker:
El volumen /var/run/docker.sock otorga control total sobre Docker. Asegúrate de:
- Usar contraseñas seguras en Dockge (15+ caracteres)
- No compartir credenciales
- Monitorear logs de Dockge:
docker logs dockge -f
3. Backups automáticos:
Los datos críticos de Dockge están en /opt/dockge/data y /opt/stacks. Script de backup:
#!/bin/bash
# /usr/local/bin/backup-dockge.sh
BACKUP_DIR="/backups/dockge"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Backup de configuración de Dockge
tar -czf $BACKUP_DIR/dockge-data-$DATE.tar.gz -C /opt/dockge data
# Backup de todos los stacks
tar -czf $BACKUP_DIR/stacks-$DATE.tar.gz -C /opt stacks
# Eliminar backups antiguos (mantener últimos 7 días)
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
echo "Backup completado: $DATE"
Agrega a crontab para ejecución diaria:
chmod +x /usr/local/bin/backup-dockge.sh
crontab -e
# Añadir:
0 2 * * * /usr/local/bin/backup-dockge.sh >> /var/log/backup-dockge.log 2>&1
Rendimiento
1. Límites de recursos:
Si gestionas muchos stacks, limita los recursos de Dockge para evitar que consuma toda la RAM:
services:
dockge:
# ... configuración existente ...
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
memory: 128M
2. Limpieza periódica:
Docker acumula imágenes antiguas. Limpia semanalmente:
docker system prune -a --volumes -f
⚠️ Advertencia: Esto eliminará todas las imágenes no usadas y volúmenes anónimos. Asegúrate de que tus stacks usen volúmenes nombrados.
3. Monitorización:
Integra Dockge con Prometheus + Grafana para monitorear recursos:
- CPU/RAM del host
- Uso de disco en
/opt/stacks - Estado de stacks (running/stopped)
Troubleshooting Dockge Docker Compose
Problema 1: «Cannot connect to Docker daemon»
Síntoma: Dockge no puede comunicarse con Docker.
Causas comunes:
- Docker no está corriendo
- Socket de Docker no montado correctamente
- Permisos incorrectos en
/var/run/docker.sock
Solución:
# Verificar que Docker esté corriendo
sudo systemctl status docker
# Si no está activo, iniciarlo
sudo systemctl start docker
# Verificar permisos del socket
ls -la /var/run/docker.sock
# Debería mostrar: srw-rw---- 1 root docker
# Si los permisos son incorrectos
sudo chmod 660 /var/run/docker.sock
# Reiniciar Dockge
cd /opt/dockge
docker compose restart
Problema 2: Stack no se despliega
Síntoma: Al hacer Deploy, el stack falla inmediatamente.
Diagnóstico:
- Revisa los logs en la pestaña Terminal de Dockge
- Verifica la sintaxis del compose.yaml:
- Indentación correcta (2 espacios)
- Quotes en valores con espacios
- Versión de compose compatible
- Comprueba que los puertos no estén en uso:
sudo netstat -tulpn | grep :5001
# Si está ocupado, cambia el puerto en el compose.yaml
Problema 3: No puedo acceder a Dockge tras actualización
Síntoma: Después de docker compose pull && docker compose up -d, la interfaz no carga.
Solución:
# Ver logs de Dockge
cd /opt/dockge
docker compose logs -f
# Si ves errores de migración de base de datos:
# 1. Para el contenedor
docker compose down
# 2. Restaura backup de /opt/dockge/data si es necesario
# 3. Vuelve a la versión anterior temporalmente
docker compose down
# Edita compose.yaml: cambia "louislam/dockge:1" a "louislam/dockge:1.X.X"
docker compose up -d
# 4. Reporta el issue en GitHub
Problema 4: Agente remoto no conecta
Síntoma: El agente aparece como «Offline» en Dockge principal.
Checklist:
- Verifica conectividad de red:
curl http://ip-agente:5001 - Confirma que el firewall permite el puerto 5001
- Revisa que el agente está corriendo:
docker ps | grep dockge - Comprueba logs del agente:
docker logs dockge -f
Dockge vs Portainer: ¿Cuál Elegir?
Ambas herramientas son excelentes gestores de contenedores, pero tienen enfoques diferentes:
Elige Dockge si:
- Trabajas exclusivamente con Docker Compose
- Prefieres una interfaz minimalista y rápida
- Quieres editar compose.yaml directamente desde el navegador
- Necesitas convertir docker run a YAML frecuentemente
- Valoras la compatibilidad CLI: los archivos permanecen en tu filesystem
- Recursos limitados: consume ~50 MB RAM vs 300+ MB de Portainer
Elige Portainer si:
- Gestionas contenedores individuales además de stacks
- Necesitas Docker Swarm o Kubernetes
- Quieres gestión de usuarios y equipos avanzada
- Requieres plantillas pre-construidas (App Templates)
- Necesitas control de redes y volúmenes avanzado
- Valoras el soporte comercial (Portainer Business)
Conclusión: Dockge es perfecto para entusiastas del self-hosting que priorizan simplicidad y Docker Compose. Portainer es mejor para equipos y entornos empresariales con requisitos complejos.
De hecho, puedes usar ambos: Portainer para gestión avanzada y Dockge para edición rápida de stacks.
Conclusión
Dockge representa un enfoque refrescante en la gestión de Docker Compose: simple, reactivo y respetuoso con tu flujo de trabajo existente. A diferencia de soluciones más pesadas, Dockge no intenta reemplazar Docker Compose, sino complementarlo con una interfaz gráfica elegante.
Con Dockge Docker Compose, has ganado:
- ✅ Gestión visual de stacks sin sacrificar control CLI
- ✅ Conversión automática de docker run a YAML
- ✅ Soporte multi-agente para infraestructuras distribuidas
- ✅ Terminal web integrado para troubleshooting rápido
- ✅ Actualizaciones de imágenes con un clic
Si gestionas aplicaciones autohospedadas o estás construyendo tu homelab, Dockge es una herramienta que definitivamente deberías probar. Su ligereza y enfoque en Docker Compose lo convierten en el compañero perfecto para entusiastas del self-hosting.
Próximos pasos recomendados:
- Despliega Dockge en tu servidor siguiendo esta guía
- Migra tus stacks existentes a
/opt/stacks - Configura backups automáticos
- Explora la documentación oficial en GitHub
- Únete a la comunidad en r/selfhosted
¿Tienes dudas o problemas con tu instalación? Revisa la sección de Troubleshooting o consulta los issues en GitHub. La comunidad de Dockge es muy activa y responde rápidamente.
FAQ sobre Dockge Docker Compose
¿Cuántos recursos consume Dockge?
Dockge es extremadamente ligero. La imagen Docker pesa aproximadamente 80 MB y consume menos de 50 MB de RAM en reposo. Con 10-15 stacks activos, el uso de RAM rara vez supera los 150 MB. Esto lo hace ideal para Raspberry Pi, VPS económicos y homelabs con recursos limitados.
¿Puedo usar Dockge con Podman en lugar de Docker?
Sí, Dockge es compatible con Podman. Necesitas instalar el paquete podman-docker que proporciona compatibilidad con el socket de Docker. En sistemas basados en Debian/Ubuntu: sudo apt install podman-docker. Luego, monta el socket de Podman en el compose.yaml: /run/podman/podman.sock:/var/run/docker.sock.
¿Cómo actualizo Dockge a la última versión?
La actualización es sencilla. Navega a /opt/dockge y ejecuta docker compose pull && docker compose up -d. Docker descargará la nueva imagen y recreará el contenedor preservando tus datos (almacenados en el volumen ./data). Siempre haz un backup de /opt/dockge/data antes de actualizar versiones mayores.
¿Es seguro darle acceso al socket de Docker?
Montar /var/run/docker.sock otorga control total sobre Docker en el host. Por eso es crítico: (1) nunca exponer Dockge directamente a Internet sin autenticación, (2) usar contraseñas robustas, (3) colocarlo detrás de un reverse proxy con SSL, y (4) considerar VPN para acceso remoto. Si comprometen Dockge, comprometen tu host Docker completo.
¿Dockge soporta Docker Swarm o Kubernetes?
No. Dockge está diseñado exclusivamente para Docker Compose en hosts individuales (o múltiples hosts vía multi-agente, pero no en modo swarm). Si necesitas orquestación con Swarm o Kubernetes, considera Portainer, Rancher o herramientas nativas como kubectl. El enfoque limitado de Dockge es intencional: simplicidad sobre funcionalidad exhaustiva.
