Guía de contenedores

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. 1 Decide dónde se hace la request: navegador, terminal del host, contenedor u otro contenedor.
  2. 2 Usa localhost solo si el servicio destino está en el mismo namespace de red.
  3. 3 Usa nombres de servicio para tráfico entre contenedores en la misma red Docker.
  4. 4 Publica puertos cuando el navegador del host necesita llegar a un servicio del contenedor.

Comprobaciones rápidas

Ver puertos publicados docker ps

Para navegador del host, busca un mapping como 0.0.0.0:8080->80/tcp y abre el puerto del lado host.

Inspeccionar servicios Compose docker compose ps

El tráfico contenedor a contenedor normalmente usa el nombre del servicio Compose, no localhost.

Llegar al host desde un contenedor host.docker.internal

En 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

Detectando qué ve el servidor...
IP pública Comprobando...
Línea de request Comprobando...
Headers HTTP de la request
Cargando headers...

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

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.