Problema de localhost en Docker
Dentro de un contenedor, localhost suele significar ese contenedor. No siempre significa tu máquina host ni otro contenedor.
Checklist rápido
- 1 Decide dónde se hace la request: navegador, terminal del host, contenedor u otro contenedor.
- 2 Usa localhost solo si el servicio destino está en el mismo namespace de red.
- 3 Usa nombres de servicio para tráfico entre contenedores en la misma red Docker.
- 4 Publica puertos cuando el navegador del host necesita llegar a un servicio del contenedor.
Comprobaciones rápidas
docker psPara navegador del host, busca un mapping como 0.0.0.0:8080->80/tcp y abre el puerto del lado host.
docker compose psEl tráfico contenedor a contenedor normalmente usa el nombre del servicio Compose, no localhost.
host.docker.internalEn Docker Desktop, este DNS especial suele ser el puente de desarrollo local desde contenedor al host.
Comprobación de request en vivo
Qué ve esta página
Headers HTTP de la request
Los headers sensibles, como cookies y tokens de autorización, se filtran antes de mostrarse.
El error más común
Un backend dentro de Docker llama a localhost y en realidad se llama a sí mismo, no a la base de datos o API esperada.
Dibuja la dirección del tráfico
Navegador a contenedor, contenedor a host y contenedor a contenedor son casos distintos. Cambia la dirección según el caso real.
Elige la dirección por dirección de tráfico
Un problema Docker localhost suele ser un desajuste entre quién hace la request y dónde vive el servicio destino.
- Host a contenedor: publica un puerto y abre el puerto del host.
- Contenedor a contenedor: usa el nombre del servicio en la red Docker.
- Contenedor a host: usa el alias de host soportado por tu plataforma.
Guías relacionadas de localhost
Localhost se negó a conectar
Soluciona localhost se negó a conectar revisando proceso, URL, puerto, protocolo, firewall y logs locales.
Guía de puertolocalhost:8080
Abre localhost:8080 y entiende por qué Java, Tomcat, Spring Boot, proxies y paneles locales usan este puerto.
Herramienta para developersConsulta de puertos localhost
Busca puertos localhost comunes, para qué suelen usarse y qué comando ayuda a ver si un puerto está ocupado.
Guía de redAbrir localhost desde el móvil
Aprende por qué localhost en el móvil apunta al móvil y cómo abrir un servidor local del ordenador desde iPhone o Android.
FAQ
¿Por qué el navegador abre la app pero el contenedor no puede llamar a localhost?
El navegador está en el host. El contenedor está en otro contexto de red. Localhost significa lugares distintos.
¿Debo hardcodear host.docker.internal?
No. Usa configuración por entorno para que Docker local, CI y producción usen los hostnames correctos.
¿Cuál es la forma más rápida de verificar una explicación de localhost?
Prueba host, puerto y ruta exactos en el navegador; luego revisa terminal o logs. Los problemas se resuelven más rápido cuando URL y proceso coinciden.
¿Cuándo uso una IP LAN en vez de localhost?
Usa IP LAN cuando otro dispositivo, perfil de navegador, máquina virtual o contenedor necesita llegar a un servicio de tu ordenador.
¿Un asistente de código puede dar una URL localhost incorrecta?
Sí. Tutoriales y asistentes suelen asumir un puerto por defecto. Compara siempre la URL sugerida con la que imprime tu dev server.