Saltar al contenido

¿Cómo accedo a un servidor en localhost con nginx docker container?

Solución:

Si está usando docker-for-mac 18.03 o más reciente, crea automáticamente una entrada de DNS especial host.docker.internal que se une dinámicamente al host inet ip. A continuación, puede utilizar el nombre dns para los servicios proxy que se ejecutan en la máquina host desde el interior de un contenedor como sustituto de localhost.

es decir, un archivo de configuración nginx:

server {
  listen 0.0.0.0:80;
  server_name localhost;

  location / {
    proxy_pass http://host.docker.internal:3000;
  }
}

Puede obtener su dirección IP actual como se muestra aquí:

ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}'

Entonces puedes usar el --add-host bandera con docker run:

docker run --add-host localnode:$(ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}') ...

En tus proxypass usar localnode en lugar de localhost.

Si. Docker necesita conocer su máquina host. Puede establecer un alias para eso con el --add-host cambiar. En un cuadro * nix para crear un alias a un nombre “localbox”, este sería:

docker run my_repo/my_image --add-host=localbox:<host_name>`

En boot2docker sería:

docker run my_repo/my_image --add-host=localbox:192.168.59.3`

donde debe reemplazar “192.168.59.3” con lo que sea boot2docker ip devoluciones.

Luego, debe acceder a su máquina host siempre a través del alias localbox, así que simplemente cambie su configuración de nginx a:

location / {
  proxy_pass http://localbox:3000;
} 
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *