Guía Completa para Instalar Pi-hole con Docker sin Raspberry Pi

Última actualización: 04/07/2026

  • Implementación de un servidor DNS sinkhole mediante contenedores Docker para bloquear publicidad a nivel de red.
  • Compatibilidad con diversas distribuciones de Linux y sistemas operativos basados en systemd.
  • Configuración de redes puente y modo host para optimizar la gestión de direcciones IP estáticas.
  • Administración centralizada de listas de bloqueo y filtrado de tráfico DNS upstream.

Cómo instalar Pi-hole sin Raspberry Pi utilizando Docker

¿Cómo instalar Pi-hole sin Raspberry Pi utilizando Docker? Seguramente te suena el nombre de Pi-hole, ese sistema tan fantástico que limpia tu navegación de anuncios molestos. Aunque su nombre sugiera que necesitas sí o sí una Raspberry Pi, la realidad es que está disponible para cualquier hardware que soporte Linux, lo que abre la puerta a aprovechar el potencial de Docker para montarlo en un servidor viejo o incluso en un PC que ya tengas en casa.

Montar este sistema es básicamente crear un filtro de DNS que actúa como una barrera entre tus dispositivos y el resto de internet. Al no depender de un hardware específico, podemos desplegarlo en contenedores, lo que facilita enormemente la gestión, las actualizaciones y el mantenimiento sin miedo a romper el sistema operativo anfitrión.

Requerimientos técnicos y hardware

Para que todo vaya como la seda, no hace falta que te gastes una fortuna en un servidor potentísimo. De hecho, Pi-hole es sorprendentemente ligero. Lo mínimo que necesitarías serían unos 2 GB de espacio en disco, aunque lo ideal sería contar con 4 GB para ir holgados. En cuanto a la memoria RAM, con 512 MB es más que suficiente para que el servicio funcione sin despeinarse.

Contenido exclusivo - Clic Aquí  Cómo Crear Carpeta en Mac

A nivel de software, el sistema es compatible con cualquier distribución que utilice systemd o sysvinit. Esto incluye desde Ubuntu (versiones 20.x hasta la 23.x) y Debian, pasando por Fedora y CentOS Stream, hasta arquitecturas ARM o x86_64. Básicamente, si tienes un Linux moderno, tienes el camino libre para instalarlo.

Puertos esenciales y direccionamiento

Un punto crítico es que Pi-hole requiere una dirección IP estática para que tus dispositivos siempre sepan a dónde enviar las consultas DNS. Si no quieres complicarte, puedes usar una reserva de DHCP en tu router para que siempre asigne la misma IP al servidor.

  • Puerto 53 (TCP/UDP): Es el corazón del sistema, donde reside pihole-FTL para gestionar el DNS.
  • Puerto 80 (TCP): Utilizado por el servidor web lighttpd para que accedas al panel de control.
  • Puerto 67 (UDP): Necesario solo si decides que Pi-hole gestione también el DHCP de tu red.
  • Puerto 4711 (TCP): Empleado por la API del motor FTL para comunicaciones internas.

Despliegue mediante Docker Compose

La manera más cómoda y limpia de poner esto en marcha es a través de un archivo docker-compose.yml. Esto evita tener que escribir comandos infinitos en la consola cada vez que quieras reiniciar el servicio. En el archivo, debemos definir la imagen pihole/pihole:latest y configurar las variables de entorno, como la zona horaria y la contraseña de administración.

Contenido exclusivo - Clic Aquí  Cómo Pasar una Página de Word a otro Documento

Es fundamental añadir la capacidad NET_ADMIN en la sección de cap_add, especialmente si tienes pensado usar las funciones de servidor DHCP. Para evitar conflictos con otros servicios web, puedes cambiar el puerto 80 por otro, como el 8080, permitiendo que coexistan varias aplicaciones en la misma máquina sin pelearse por el mismo puerto.

Si prefieres la instalación directa sobre el sistema sin Docker, puedes usar el comando curl -sSL https://install.pi-hole.net | bash, aunque esto hace que el proceso sea menos flexible y más difícil de migrar en el futuro.

Configuración avanzada y solución de problemas

A veces, al instalar Pi-hole en Ubuntu, nos topamos con un problema: el servicio systemd-resolved ya está ocupando el puerto 53. Para solucionar esto, debemos entrar en el archivo de configuración de resolved.conf y cambiar el parámetro DNSStubListener=no. Después, es necesario borrar el archivo resolv.conf y crear un enlace simbólico al archivo de ejecución del sistema para que la resolución de nombres no se quede colgada.

En entornos de Windows 10 con Docker Desktop, algunos usuarios intentan usar network_mode: host para obtener una IP interna de la red doméstica. Sin embargo, esto suele dar problemas ya que Docker en Windows corre sobre una máquina virtual ligera. Para lograr que el contenedor tenga una IP real de tu LAN, lo ideal es configurar una red bridge personalizada, aunque requiere ajustes precisos en la subred y la puerta de enlace para evitar el error de «Destination Host Unreachable».

Contenido exclusivo - Clic Aquí  Como Instalar Lol

Administración del Panel y Filtrado DNS

DNS 1.1.1.1 para acelerar internet

Una vez que el contenedor está arriba, puedes entrar al panel administrativo escribiendo la IP de tu servidor seguida de /admin. Si no definiste una contraseña en el archivo de Compose, puedes encontrar la clave generada aleatoriamente revisando los logs con el comando docker logs pihole | grep random.

Dentro del panel, es muy recomendable ir a la sección de Settings y configurar los DNS upstream. Muchos usuarios optan por Quad9 (9.9.9.9) por sus políticas de seguridad y privacidad. Para mantener el bloqueo actualizado, puedes añadir listas de terceros y ejecutar la función de Update Gravity, que es la que procesa todas las reglas de bloqueo y las guarda en la base de datos SQLite del sistema.

Para gestionar la contraseña desde la terminal sin entrar en la web, puedes ejecutar el comando pihole -a -p dentro del contenedor, lo que te permitirá establecer una clave nueva de forma rápida y sencilla.

Tener un servidor de filtrado DNS mediante Docker permite limpiar la red de publicidad no deseada sin necesidad de hardware dedicado, siempre que se gestionen correctamente los puertos y se desactiven los escuchadores DNS locales del sistema operativo. Al final, solo queda configurar el router para que apunte a la IP del contenedor y disfrutar de una navegación mucho más fluida y privada en todos los dispositivos del hogar.