Cómo instalar Pi-hole en Docker - Bloqueador de anuncios y DNS autohospedado (release 2026.10.0)
Pi-hole 6.5 en Docker: bloqueador de anuncios y DNS autohospedado, con las novedades de la release 2026.10.0
Pi-hole es un servidor DNS que bloquea anuncios, rastreadores y dominios no deseados para toda tu red local. Te explico cómo desplegarlo con Docker Compose usando la imagen oficial y qué trae la última release de la imagen Docker, que corrige 17 avisos de seguridad en FTL, Web y Core.
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Pi-hole en Docker en el canal GENBYTE:
¿Qué es Pi-hole en Docker?
Pi-hole actúa como servidor DNS para toda tu red local. Cuando un dispositivo pide resolver un dominio de publicidad o de rastreo, Pi-hole responde con una dirección vacía y la conexión nunca llega a salir de casa. Funciona en cualquier dispositivo que use tu red, sin instalar nada en cada móvil, televisor o portátil.
La versión 6 de Pi-hole incorpora una interfaz web renovada, una API documentada y el motor DNS FTL. La imagen oficial pihole/pihole empaqueta todo para ejecutarse en un contenedor, y su configuración se gestiona con variables de entorno FTLCONF_ y carpetas persistentes.
Novedades de la release 2026.10.0
La release 2026.10.0 de la imagen Docker se publicó el 17 de octubre. Incluye las siguientes versiones de componentes: Pi-hole FTL v6.8 (el motor DNS), Pi-hole Web v6.6.1 (la interfaz) y Pi-hole Core v6.5 (los scripts de gestión).
Seguridad: 17 avisos corregidos
La release cubre 17 avisos de seguridad repartidos entre FTL, Web y Core. Varios son de severidad alta.
Escalada de privilegios
Se corrigen escaladas de privilegios de usuario pihole a root en Core, incluida una derivada de un fix anterior (CVE-2026-41489).
Descargas fail closed
Las descargas de FTL y de releases de GitHub ahora fallan de forma segura: si no se pueden verificar, el proceso se detiene en vez de continuar.
Contraseña web protegida
La contraseña web de los secrets de Docker ya no se imprime en el modo de depuración de bash (xtrace).
Repositorios de confianza
Ajuste en la confianza de los repositorios de Core y Web para el usuario pihole, relacionado con el aviso GHSA-xch2-4qxw-g5vj.
Base Alpine actualizada
La imagen base pasa de Alpine 3.24.1 a 3.24.2, actualización automatizada con Dependabot.
Avisos de seguridad más relevantes
- Severidad alta: lectura de archivos autenticada en FTL, escalada de privilegios de pihole a root (con bypass del fix de CVE-2026-41489), escalada mediante la capability CAP_CHOWN de pihole-FTL, y un chown arbitrario de directorios desde gravity.sh.
- Severidad media: denegación de servicio en DNS mediante consultas CHAOS/TXT sin autenticar, y lectura de secretos de autenticación del administrador desde sesiones de app-password y CLI.
- Severidad baja: XSS almacenado en varias páginas de la interfaz web, un caso de CORS abierto con CSRF y DNS rebinding que permite cambiar una Pi-hole v6 desde el navegador de un usuario de la LAN, y varios use-after-free y double free que pueden tumbar el resolver.
Requisitos del sistema
- Docker y Docker Compose (en sistemas antiguos, el comando puede ser
docker-compose) - Un host Linux con IP fija en tu red local (recomendado para que los dispositivos siempre encuentren el DNS)
- Puertos libres: 53 TCP/UDP (DNS), 80 TCP (interfaz web) y 443 TCP (HTTPS, con certificado autofirmado generado por FTL)
- Opcional: puerto 67 UDP si usas Pi-hole como servidor DHCP, y 123 UDP si lo usas como servidor NTP
systemd-resolved suele ocupar el puerto 53 en el host. Si el contenedor no arranca por conflicto de puerto, revisa qué proceso lo usa con sudo ss -lntup | grep :53 antes de tocar nada.
Instalación con Docker Compose
Paso 1: docker-compose.yml
FTLCONF_webserver_api_password, Pi-hole genera una aleatoria al arrancar. Pon una propia antes de levantar el contenedor.
Paso 2: Iniciar Pi-hole
Paso 3: Probar el DNS
Acceder a la interfaz web
Interfaz web: http://localhost/admin
Desde otro dispositivo: http://IP_DEL_HOST/admin
Carpeta de configuración: ./etc-pihole
Primeros pasos
- Entra en la interfaz web con la contraseña que definiste en
FTLCONF_webserver_api_password. - En tu router, configura el DNS de la red para que apunte a la IP fija de tu host.
- Revisa las listas de bloqueo activas y añade las que necesites desde la sección de adlists.
- Consulta el panel de consultas para comprobar que los dominios bloqueados aparecen como tal.
network_mode: host resuelve esto, pero en ese caso cambian los puertos y debes ajustar la configuración a tu entorno.
Casos de uso
- Bloqueo de publicidad en toda la casa: televisores, móviles y consolas sin instalar extensiones.
- Control de rastreadores: menos telemetría saliendo de tus dispositivos.
- DNS propio para el laboratorio: resolver nombres de tus servicios autohospedados desde la misma instancia.
- Servidor DHCP ligero: Pi-hole también puede repartir direcciones, si necesitas controlar la red desde un único punto.
Configuración avanzada
Pi-hole como servidor DHCP
Persistir ficheros dnsmasq.d personalizados
Comprobar la versión en ejecución
etc-dnsmasq.d, mantenla montada durante el primer arranque de v6 para que la migración sea completa. Después puedes quitarla.
Gestión y mantenimiento
Ver estado
Ver logs
Actualizar a la release 2026.10.0
pihole/pihole:2026.10.0) para actualizar de forma controlada, o usar latest para recibir siempre la última. Las notas de cada release detallan los componentes incluidos.
Detener Pi-hole
Stack técnico
- Motor DNS: FTL (Faster Than Light), v6.8 en esta release
- Interfaz web y API: Pi-hole Web v6.6.1
- Scripts de gestión: Pi-hole Core v6.5
- Imagen base: Alpine 3.24.2
- Configuración: variables
FTLCONF_y carpeta persistente/etc/pihole - Licencia: consulta el repositorio oficial para los detalles de licencia de cada componente
Comentarios
Publicar un comentario