Dockpeek: Acceso rápido y actualizaciones fáciles para tus contenedores Docker
Panel ligero autohospedado para gestionar interfaces web, logs, puertos y actualizaciones de contenedores en uno o varios hosts
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Dockpeek: Acceso rápido y actualizaciones fáciles para tus contenedores Docker en el canal GENBYTE:
¿Qué es Dockpeek: Acceso rápido y actualizaciones fáciles para tus contenedores Docker?
Dockpeek es un panel de control ligero y autohospedado diseñado para simplificar la gestión diaria de contenedores Docker. Permite acceder con un clic a las interfaces web de los contenedores, visualizar puertos publicados, consultar logs en tiempo real y comprobar actualizaciones de imágenes desde una única interfaz. Detecta automáticamente etiquetas de Traefik y funciona sin configuración adicional. Soporta gestión multi-host y Docker Swarm, lo que permite controlar varios demonios Docker desde un mismo panel.
Características principales
Acceso web con un clic
Abre directamente las interfaces web y dashboards de tus contenedores desde el panel principal.
Mapeo automático de puertos
Detecta y muestra todos los puertos publicados por cada contenedor sin configuración manual.
Logs en tiempo real
Transmite y visualiza los logs de los contenedores en vivo desde la interfaz.
Integración con Traefik
Extrae automáticamente las URLs de los servicios a partir de las etiquetas de Traefik.
Gestión multi-host
Controla múltiples demonios Docker (locales y remotos) desde una única instancia de Dockpeek.
Comprobación de actualizaciones
Detecta imágenes desactualizadas y permite actualizar contenedores directamente desde el panel.
Etiquetas personalizadas
Usa etiquetas dockpeek.* para forzar HTTPS, añadir puertos personalizados, crear enlaces clicables y organizar con tags.
Soporte nativo para Docker Swarm
Despliega como stack en Swarm y gestiona servicios, tareas y nodos con las mismas funcionalidades.
Agrupación de rangos de puertos
Agrupa automáticamente puertos consecutivos en rangos para una visualización más limpia.
Requisitos del sistema
- Docker Engine 20.10 o superior
- Acceso al socket de Docker (/var/run/docker.sock) o API Docker remota vía TCP
- Python 3.11 (incluido en la imagen oficial)
- Puerto 3420 (por defecto) disponible en el host para la interfaz web
- Clave secreta (SECRET_KEY) obligatoria para funcionamiento y seguridad de sesiones
- Credenciales de acceso (USERNAME y PASSWORD) salvo que se desactive autenticación con DISABLE_AUTH=true
Instalación con Docker Compose
Instalación básica (recomendada)
Despliegue sencillo montando el socket de Docker local. Requiere definir SECRET_KEY, USERNAME y PASSWORD.
dockpeek:
image: dockpeek/dockpeek:latest
container_name: dockpeek
environment:
– SECRET_KEY=your_secure_secret_key
– USERNAME=admin
– PASSWORD=admin
ports:
– "3420:8000"
volumes:
– /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
Instalación con Socket Proxy (seguridad mejorada)
Limita el acceso a la API de Docker usando un proxy de socket (linuxserver/socket-proxy). Dockpeek se conecta al proxy en lugar del socket directo.
dockpeek:
image: dockpeek/dockpeek:latest
container_name: dockpeek
environment:
– SECRET_KEY=your_secure_secret_key
– USERNAME=admin
– PASSWORD=admin
– DOCKER_HOST=tcp://socket-proxy:2375
ports:
– "3420:8000"
depends_on:
– socket-proxy
restart: unless-stopped
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:latest
container_name: dockpeek-socket-proxy
environment:
– CONTAINERS=1
– IMAGES=1
– PING=1
– VERSION=1
– INFO=1
– POST=1
– ALLOW_START=1
– ALLOW_STOP=1
– ALLOW_RESTARTS=1
– NETWORKS=1
volumes:
– /var/run/docker.sock:/var/run/docker.sock
read_only: true
tmpfs:
– /run
restart: unless-stopped
Configuración multi-host
Gestiona varios hosts Docker (locales y remotos) desde una sola instancia. Cada host remoto solo necesita exponer la API Docker vía TCP (p.ej. con socket-proxy).
dockpeek:
image: dockpeek/dockpeek:latest
container_name: dockpeek
restart: unless-stopped
ports:
– "3420:8000"
environment:
– SECRET_KEY=your_secure_secret_key
– USERNAME=admin
– PASSWORD=admin
– DOCKER_HOST_1_URL=unix:///var/run/docker.sock
– DOCKER_HOST_2_URL=tcp://192.168.1.100:2375
– DOCKER_HOST_2_NAME=Production Server
– DOCKER_HOST_2_PUBLIC_HOSTNAME=server.local
– DOCKER_HOST_3_URL=tcp://100.64.1.5:2375
– DOCKER_HOST_3_NAME=Remote VPS
– DOCKER_HOST_3_PUBLIC_HOSTNAME=vps.tailnet.ts.net
volumes:
– /var/run/docker.sock:/var/run/docker.sock:ro
Despliegue en Docker Swarm
Stack listo para producción con Traefik. Incluye socket-proxy en nodo manager y redes dedicadas. Dockpeek detecta modo Swarm automáticamente.
dockpeek:
image: dockpeek/dockpeek:latest
environment:
– SECRET_KEY=your_secure_secret_key
– USERNAME=admin
– PASSWORD=admin
– TRAEFIK_LABELS=true
– DOCKER_HOST=tcp://tasks.socket-proxy:2375
ports:
– "3420:8000"
networks:
– traefik
– dockpeek-internal
deploy:
replicas: 1
labels:
– "traefik.enable=true"
– "traefik.http.routers.dockpeek.rule=Host(`dockpeek.example.com`)"
– "traefik.http.routers.dockpeek.entrypoints=websecure"
– "traefik.http.routers.dockpeek.tls=true"
– "traefik.http.services.dockpeek.loadbalancer.server.port=8000"
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:latest
environment:
– CONTAINERS=1
– IMAGES=1
– PING=1
– VERSION=1
– INFO=1
– POST=1
– SERVICES=1
– TASKS=1
– NODES=1
volumes:
– /var/run/docker.sock:/var/run/docker.sock:ro
– type: tmpfs
target: /run
tmpfs:
size: 100000000
networks:
– socket-proxy
deploy:
replicas: 1
placement:
constraints:
– node.role == manager
networks:
socket-proxy:
traefik:
external: true
Acceder al proyecto
Interfaz web
Accede a http://<IP_HOST>:3420 (puerto por defecto mapeado al 8000 interno). Inicia sesión con USERNAME y PASSWORD definidos en variables de entorno.
Healthcheck
Endpoint de salud disponible en http://<IP_HOST>:3420/health para monitorización externa.
Detrás de proxy inverso
Si usas Traefik u otro proxy, habilita TRUST_PROXY_HEADERS=true y TRUSTED_PROXY_COUNT según número de proxies para soporte correcto de cabeceras X-Forwarded-*.
Casos de uso
- Panel centralizado para acceder a dashboards de aplicaciones autohospedadas (Portainer, Home Assistant, Grafana, etc.)
- Monitorización rápida de puertos publicados y detección de puertos libres con búsqueda :free
- Gestión de actualizaciones de imágenes sin línea de comandos
- Administración de múltiples servidores Docker (casa, VPS, oficina) desde una sola UI
- Entornos Docker Swarm con Traefik como ingress para exponer servicios de forma segura
- Equipos que requieren control de acceso simple con usuario/contraseña y sesiones seguras
Configuración avanzada
Variables de entorno obligatorias
SECRET_KEY (requerida, clave para sesiones y seguridad), USERNAME y PASSWORD (requeridas salvo DISABLE_AUTH=true).
– SECRET_KEY=clave_secreta_larga_y_aleatoria
– USERNAME=admin
– PASSWORD=contraseña_segura
Configuración opcional principal
Puerto interno (PORT=8000), desactivar auth (DISABLE_AUTH=false), conexión Docker primaria (DOCKER_HOST), nombre de host para UI (DOCKER_HOST_NAME), hostname público para enlaces (DOCKER_HOST_PUBLIC_HOSTNAME), timeout de conexión (DOCKER_CONNECTION_TIMEOUT=2), modo de comprobación de actualizaciones (UPDATE_FLOATING_TAGS=disabled|latest|major|minor), confianza en proxies (TRUST_PROXY_HEADERS=false, TRUSTED_PROXY_COUNT=1), visibilidad de columnas Traefik y Tags (TRAEFIK_LABELS=true, TAGS=true), agrupación de puertos (PORT_RANGE_GROUPING=true, PORT_RANGE_THRESHOLD=5), plantillas de registro personalizadas (CUSTOM_REGISTRY_TEMPLATES).
– PORT=8000
– DISABLE_AUTH=false
– DOCKER_HOST=unix:///var/run/docker.sock
– DOCKER_HOST_NAME=Mi Servidor
– DOCKER_HOST_PUBLIC_HOSTNAME=docker.local
– DOCKER_CONNECTION_TIMEOUT=2
– UPDATE_FLOATING_TAGS=major
– TRUST_PROXY_HEADERS=true
– TRUSTED_PROXY_COUNT=1
– TRAEFIK_LABELS=true
– TAGS=true
– PORT_RANGE_GROUPING=true
– PORT_RANGE_THRESHOLD=5
Plantillas de registro personalizadas
Permite que los iconos de registros privados (Gitea, Harbor, GitLab) sean clicables y apunten a su interfaz web. Usa placeholders {0}, {1}, {2} para partes de la imagen.
– |
CUSTOM_REGISTRY_TEMPLATES={
"git.example.com": {"urlTemplate": "https://git.example.com/{1}/-/packages/container/{2}"},
"harbor.company.com": {"urlTemplate": "https://harbor.company.com/harbor/projects/{1}/repositories/{2}"}
}
Etiquetas de contenedor (labels)
Personaliza comportamiento por contenedor: dockpeek.ports (puertos extra), dockpeek.https (forzar HTTPS en puertos), dockpeek.link (enlace personalizado en nombre), dockpeek.port-range-grouping (anular agrupación global), dockpeek.tags (etiquetas de organización).
– "dockpeek.ports=8080,9090"
– "dockpeek.https=3001,8080"
– "dockpeek.link=https://myapp.example.com"
– "dockpeek.port-range-grouping=false"
– "dockpeek.tags=frontend,production"
Búsquedas avanzadas
Busca por puerto con :puerto (ej. :8080). Busca puertos libres con :free o :free 3420. Click en título Dockpeek para limpiar filtro.
Gestión y mantenimiento
Actualización de Dockpeek
Actualiza la imagen y recrea el contenedor. Usa docker compose pull && docker compose up -d. La imagen oficial está en ghcr.io/dockpeek/dockpeek y Docker Hub.
docker compose up -d
Comprobación de actualizaciones de contenedores
Desde la UI, botón 'Check for updates' escanea imágenes. Modo exacto por defecto; con UPDATE_FLOATING_TAGS=major|minor|latest compara contra tags flotantes. Requiere permisos START/STOP/RESTART en socket-proxy si se usa.
Logs de la aplicación
Consulta logs del contenedor dockpeek con docker logs dockpeek. La app usa Gunicorn; logs incluyen accesos y errores.
Salir de modo Swarm accidental
Si Dockpeek detecta Swarm y no ves contenedores, ejecuta docker swarm leave –force en el host y refresca la UI.
Copia de seguridad de configuración
La configuración reside en variables de entorno del compose. Guarda el archivo docker-compose.yml y las claves (SECRET_KEY, credenciales) en gestor de secretos seguro.
Stack técnico
- Python 3.11 (backend, Gunicorn)
- JavaScript (frontend interactivo)
- Tailwind CSS 4 (estilos, compilado con @tailwindcss/cli)
- Docker / Docker Compose (despliegue)
- Docker Socket Proxy (seguridad opcional, linuxserver/socket-proxy)
- Traefik (integración automática de etiquetas, ingress en Swarm)
- Docker Swarm (soporte nativo de servicios, tareas y nodos)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/dockpeek/dockpeek
- Imagen en GitHub Container Registry: https://github.com/dockpeek/dockpeek/pkgs/container/dockpeek
- Imagen en Docker Hub: https://hub.docker.com/r/dockpeek/dockpeek
- Licencia MIT: https://github.com/dockpeek/dockpeek/blob/main/LICENSE
- Documentación de etiquetas (README): https://github.com/dockpeek/dockpeek#%EF%B8%8F-container-labels
- Configuración multi-host (README): https://github.com/dockpeek/dockpeek#-multi-host-setup
- Despliegue en Docker Swarm (README): https://github.com/dockpeek/dockpeek#-docker-swarm-support
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
