Cómo agregar y configurar un sitio web basado en Docker en ServBay
ServBay es un entorno de desarrollo web local diseñado específicamente para macOS, que soporta múltiples lenguajes y stacks tecnológicos. Además de hospedar sitios web usando los paquetes integrados de ServBay (como PHP, Node.js, Python, Go, Java, bases de datos, etc.), también puedes ejecutar y gestionar tus sitios o servicios utilizando contenedores Docker. Este método ofrece una flexibilidad excepcional, aislamiento de entornos y consistencia, especialmente útil para proyectos que requieren dependencias o entornos específicos.
En este artículo te mostraremos detalladamente cómo añadir un sitio web alojado en un contenedor Docker en ServBay, integrándolo fácilmente a tu flujo de desarrollo local a través del proxy inverso de ServBay.
Descripción general
Al configurar ServBay como un proxy inverso, puedes reenviar solicitudes de dominios específicos a los puertos de servicio internos que corren dentro de los contenedores Docker. ServBay se encarga de manejar el tráfico de entrada (como certificados HTTPS, resolución de nombres de dominio, etc.), mientras que el contenedor Docker gestiona la ejecución de tu aplicación. Este enfoque combina la cómoda interfaz de gestión de ServBay con el poder de la contenerización de Docker.
A continuación encontrarás los pasos necesarios para agregar y configurar un sitio web basado en Docker dentro de ServBay.
Requisitos previos
Antes de comenzar, asegúrate de cumplir con los siguientes requisitos:
- ServBay instalado y en ejecución: Has instalado correctamente ServBay en macOS y está en funcionamiento.
- Docker instalado y en ejecución: Tienes instalado Docker Desktop u otro entorno Docker en tu Mac, y el servicio Docker está activo.
- Imagen y contenedor Docker listos: Has construido o descargado la imagen de Docker que contiene tu sitio web o aplicación y puedes iniciarla para lanzar un contenedor.
Pasos detallados para agregar un sitio web
Paso 1: Prepara e inicia el contenedor Docker
Primero, asegúrate de que tu contenedor Docker está corriendo y que el servicio interno (por ejemplo, un servidor web) escucha en el puerto adecuado, el cual debe estar mapeado a un puerto disponible del host (es decir, tu macOS) utilizando la funcionalidad de port mapping de Docker.
Por ejemplo, si tienes un contenedor Nginx simple cuyo Nginx interno escucha en el puerto 80, puedes mapear el puerto 8080 del host al puerto 80 del contenedor usando el siguiente comando:
docker run -d --name my-nginx-servbay -p 8080:80 nginx
En este ejemplo, el servicio Nginx dentro del contenedor Docker my-nginx-servbay
escucha en el puerto 80
, pero al usar el parámetro -p 8080:80
estamos mapeando el puerto 80
del contenedor al 8080
del host. ServBay deberá conectarse al puerto 8080
del host.
Según tu aplicación y la configuración de tu Dockerfile, asegúrate de que el servicio interno del contenedor esté escuchando en el puerto correcto y que ese puerto esté correctamente mapeado a un puerto del host.
Paso 2: Abre la interfaz de administración de ServBay
En tu carpeta de Aplicaciones de macOS, localiza el icono de la app ServBay
y haz doble clic para abrir la interfaz de administración de ServBay.
Paso 3: Navega a la página de gestión de sitios web
Al abrir ServBay, verás la interfaz principal. En el menú de navegación a la izquierda, busca y haz clic en la opción Sitios web
. Esto te llevará a la página de gestión de sitios web de ServBay, donde puedes ver y configurar todos los sitios locales que has añadido.
Ilustración: Haz clic en “Sitios web” en la barra lateral izquierda para acceder a la página de administración.
Paso 4: Añade un nuevo sitio web
En la parte inferior de la página de administración de sitios web verás un botón +
. Haz clic en ese botón y ServBay abrirá un nuevo formulario en el área derecha para que puedas ingresar la información de configuración del nuevo sitio web.
Ilustración: Haz clic en el botón “+” en la parte inferior para añadir un nuevo sitio web.
Paso 5: Configura los ajustes del sitio web
En el formulario de configuración de sitios web, rellena los siguientes campos clave:
- Nombre (Name): Asigna un nombre identificativo a tu sitio, por ejemplo
Docker Nginx Demo
. Este nombre es solo para la gestión interna en ServBay. - Dominio (Domain): Introduce el dominio local con el que quieres acceder a este sitio Docker desde tu navegador. Se recomienda usar el sufijo
.servbay.demo
para evitar conflictos con dominios públicos, por ejemplodocker.servbay.demo
. ServBay configurará automáticamente tu archivo hosts para apuntar este dominio al localhost (127.0.0.1
). - Protocolo (Protocol): Selecciona el protocolo soportado por el sitio. Generalmente, deja la opción predeterminada
HTTP/HTTPS
. ServBay escuchará tanto en los puertos HTTP (80) como HTTPS (443) y gestionará los certificados SSL según la configuración. - Método de solicitud de certificado SSL (SSL Certificate Request Method): Se recomienda elegir
ServBay CA
. ServBay generará y administrará automáticamente un certificado SSL firmado por la autoridad de ServBay User CA y de confianza local. Al instalar la ServBay Public CA en tu llavero del sistema, tu navegador confiará en estos certificados, facilitando el desarrollo y las pruebas HTTPS locales. Si lo prefieres, también puedes optar porACME
(por ejemplo, para certificados Let's Encrypt) oCustom
(para usar un certificado propio). - Tipo de sitio web (Website Type): 【Clave】 Elige
Proxy inverso (Reverse Proxy)
. Esto indica que ServBay actuará como puerta de entrada para el dominio y reenviará las solicitudes al backend indicado. - Dirección IP (IP Address): Introduce la IP del host en la que el servicio de tu contenedor Docker está escuchando. En la mayoría de los casos con Docker local, será la dirección de loopback:
127.0.0.1
. - Puerto (Port): Introduce el número del puerto en el que el servicio de tu contenedor Docker está expuesto en el host. Este corresponde al
<puerto del host>
especificado en el comandodocker run -p <puerto del host>:<puerto del contenedor>
. Por ejemplo, si usaste-p 8080:80
, aquí debes poner8080
.
Ilustración: Rellenando la configuración de un sitio Docker con proxy inverso.
Paso 6: Finaliza y guarda la configuración
Una vez hayas rellenado todos los campos necesarios, haz clic en el botón Agregar (Add)
al final del formulario.
ServBay procesará tu solicitud, añadiendo automáticamente la regla de proxy inverso correspondiente en el servidor web de ServBay (como Caddy o Nginx), y actualizará el archivo hosts del sistema para redirigir tu dominio local.
Después de guardar, puede que ServBay tarde unos segundos en aplicar la configuración. Cuando esté listo, ya podrás probar el dominio que has agregado.
Paso 7: Accede al sitio web y utiliza los accesos directos
Cuando la configuración se haya guardado correctamente, vuelve a la página de administración de sitios web, donde verás la entrada del nuevo sitio web. Asegúrate de que su estado se muestre como “En ejecución”.
Ahora puedes acceder al dominio configurado desde el navegador (por ejemplo, http://docker.servbay.demo
o https://docker.servbay.demo
). Si todo está correcto, ServBay reenviará la solicitud al servicio de tu contenedor Docker y verás el contenido web servido por el contenedor.
En las entradas de la lista de sitios web, ServBay te ofrece una serie de accesos directos útiles, incluyendo:
- Abrir el directorio raíz en un IDE: (Para sitios tipo proxy inverso, este botón puede no ser aplicable o dirigir al directorio de configuración de ServBay, dependiendo de la versión y configuración de ServBay)
- Abrir el sitio en el navegador: Accede rápidamente a la URL del sitio en una pestaña nueva.
- Ver registros/logs: Consulta los registros de acceso y errores que ServBay guarda para ese sitio, ideal para tareas de depuración.
- Pausar/reanudar el sitio: Desactiva temporalmente o reactiva la configuración de proxy inverso para ese sitio.
- Eliminar el sitio: Elimina la configuración del sitio de ServBay.
Ilustración: Accesos directos disponibles en la lista de sitios web de ServBay.
Notas importantes y buenas prácticas
- Estado del contenedor Docker: Asegúrate de que el contenedor Docker objetivo esté siempre ejecutándose, de lo contrario ServBay no podrá reenviar las solicitudes correctamente.
- Mapeo de puertos: Revisa cuidadosamente la configuración de mapeo de puertos en Docker (parámetro
-p
) y que el puerto indicado en ServBay coincida, además de verificar que ese puerto no esté siendo usado por otro programa en el host. - Cortafuegos: Examina la configuración de firewall de macOS para asegurarte de que los puertos utilizados por ServBay (por defecto 80, 443) y los puertos expuestos por Docker en el host estén accesibles.
- Modo de red de Docker: En la mayoría de los casos, utilizar el modo de red predeterminado
bridge
y mapear los puertos con-p
es lo más simple. Si empleas el modohost
, ServBay podrá acceder directamente al puerto interno del contenedor (por ejemplo, si escucha en el 80, pon 80 en ServBay), pero el modohost
puede causar conflictos de puertos. - ServBay CA: Para facilitar el desarrollo HTTPS, se recomienda encarecidamente instalar la ServBay Public CA. Así los certificados locales generados por ServBay serán confiables en tu navegador y evitarás alertas de seguridad.
Preguntas frecuentes y resolución de problemas (FAQ)
P: Tras añadir un sitio, no puedo acceder y el navegador muestra error de conexión o timeout.
R: Por favor, revisa los siguientes puntos:
- Estado del sitio en ServBay: En la página de administración de sitios, confirma que el sitio aparece como “En ejecución”.
- Estado del contenedor Docker: En la terminal, ejecuta
docker ps
para asegurarte de que el contenedor objetivo esté en marcha. - Mapeo de puertos de Docker: Usa
docker ps
y revisa la columna de puertos (PORTS
) para verificar que el puerto del host (por ejemplo0.0.0.0:8080->80/tcp
o127.0.0.1:8080->80/tcp
donde8080
es el que pusiste en ServBay) es el correcto. - Servicio interno del contenedor: Comprueba que el servicio web dentro del contenedor (Nginx, Apache, apps Node, etc.) escuche en el puerto adecuado y no tenga errores internos. Consulta los logs con
docker logs <ID-del-contenedor-o-nombre>
. - Logs de ServBay: Haz clic en el icono de logs del sitio web desde la lista en ServBay para consultar los registros de acceso y errores; ahí podrías ver información relevante si el proxy falla.
- Archivo hosts del sistema: Aunque ServBay lo gestiona automáticamente, puedes revisar /etc/hosts manualmente para confirmar que tu dominio apunta a
127.0.0.1
. - Cortafuegos: Confirma que ningún firewall esté bloqueando el acceso a los puertos relevantes de ServBay o Docker.
P: ¿Puedo gestionar el ciclo de vida de los contenedores Docker directamente desde ServBay?
R: ServBay se enfoca en administrar servicios web locales, bases de datos y entornos de lenguajes, así como enrutar el tráfico a servicios de backend (incluidos contenedores Docker). No proporciona una gestión completa del ciclo de vida de contenedores Docker (como iniciar, detener o construir imágenes). Para esto, debes utilizar las herramientas de línea de comandos de Docker o la interfaz de Docker Desktop.
P: ¿Qué es ServBay CA y por qué debo instalarla?
R: ServBay CA (Autoridad Certificadora) es el sistema de gestión de certificados de ServBay que facilita el desarrollo HTTPS local. ServBay User CA emite los certificados SSL para tus sitios locales, y ServBay Public CA es el certificado raíz de esa autoridad. Al instalar ServBay Public CA en tu llavero del sistema, tanto macOS como el navegador confiarán en cualquier certificado local generado por ServBay, eliminando las advertencias de “conexión no segura” al acceder a webs HTTPS en tu entorno de desarrollo, lo cual es clave para pruebas locales realistas.
Resumen
Añadir un sitio web basado en Docker a ServBay es una solución eficiente y flexible. Permite utilizar ServBay como el eje central de tu entorno de desarrollo local para gestionar dominios y tráfico, mientras delegas la ejecución y el aislamiento de la aplicación a Docker. Gracias a una simple configuración de proxy inverso, puedes integrar sin problemas todo tipo de proyectos dockerizados a tu flujo de trabajo en ServBay. Siguiendo estos pasos y recomendaciones, podrás poner en marcha y gestionar fácilmente tu sitio web local en Docker.