web-dev-qa-db-fra.com

curl: (7) Impossible de se connecter au port localhost 8090: connexion refusée

Besoin d'aide. J'ai essayé de trouver une solution à ce problème et je n'ai pas pu trouver de réponse, ou plutôt je n'en ai pas rencontré.

J'ai un conteneur docker avec NGINX, agissant comme un proxy inverse. Docker pour Windows version 1.12.5 (9503).

upstream mysite {
    server 127.0.0.1:8090;
    #server localhost:8090; (have also tried this option)
}

server {
    listen 0.0.0.0:80;
    server_name  localhost;

    location / {
        proxy_pass http://mysite;
    }
}

Dans le code localhost ci-dessus: 8090 est l'url d'un site Web hébergé sur IIS sur ma machine hôte. Lorsque j'accède à l'url sur NGINX, j'obtiens l'erreur suivante

2016/12/27 08:11:57 [error] 6#6: *4 no live upstreams while connecting to upstream, client: 172.17.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://googlesite/", Host: "localhost"
172.17.0.1 - - [27/Dec/2016:08:11:57 +0000] "GET / HTTP/1.1" 502 173 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0" "-"

J'ai essayé d'accéder à l'URL sur la machine hôte

(site HTML simple, page unique avec seulement du HTML simple, hébergé sur IIS avec un accès anonyme accordé à tous.)

curl localhost:8090

Obtention de l'erreur suivante:

curl: (7) Failed to connect to localhost port 8090: Connection refused

Je suis nouveau sur Docker et NGINX. Vous souhaitez savoir s'il est possible d'accéder aux URL sur la machine hôte? Si oui, alors où je me trompe.

La même configuration fonctionne, si j'utilise google.co.in au lieu de 127.0.0.1:8090.

Merci.

7
Babu Reddy

Dans un conteneur Docker, les localhost et 127.0.0.1 fait référence au conteneur lui-même. Pour accéder à la machine hôte exécutant dockerd avec votre conteneur, vous devez faire référence à l'hôte par son nom d'hôte public/IP comme s'il s'agissait d'une autre machine sur le réseau.

15
Robin479