Dockpeek: Acceso rápido y actualizaciones fáciles para tus contenedores Docker

Publicado por


dockpeek
Dashboard Docker

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.

Acceso instantáneo a dashboards de contenedores, detección automática de puertos y Traefik, y comprobación de actualizaciones de imágenes desde una interfaz única.

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.

services:
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.

services:
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).

services:
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.

services:
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).

environment:
– 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).

environment:
– 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.

environment:
– |
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).

labels:
– "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 pull
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.

docker logs -f dockpeek

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.

docker swarm leave –force

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

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *