2017-02-07 8 views
1

Sur mon ordinateur, je cours une application dans Docker (il fonctionne sur http://localhost:8181).Comment faire une demande au serveur fonctionnant sur docker

J'ai démarré Docker avec docker run -p 8181:8181 myapp.

Après quelques recherches j'ai essayé d'envoyer ma demande à la sortie de docker0 quand j'exécute ifconfig, qui est 172.17.0.1, et l'IP de mon ordinateur. J'ai également essayé localhost et 0.0.0.0: http://<ip>:8181/myapp. Je cours Ubuntu 16.04.

Comment puis-je envoyer une requête au serveur s'exécutant dans le menu fixe?

+1

http: // localhost: 8181/myapp aurait dû fonctionner. Qu'est-ce qui s'est passé exactement quand vous l'avez essayé? – jwodder

Répondre

2

Changez votre application de l'écoute sur localhost: 8181 à l'écoute sur 0.0.0.0:8181. Le mappage des ports Docker acheminera vers l'adresse IP du conteneur, et non vers l'interface de bouclage à l'intérieur du conteneur, de sorte que votre application doit écouter sur toutes les interfaces.

Ensuite, vous exécutez votre conteneur que vous avez avec l'option de mappage de port qui mappe 8181 sur l'hôte au même port intérieur du conteneur:

docker run -p 8181:8181 myapp 

Enfin, vous vous connectez à l'adresse IP de votre hôte docker sur port 8181 pour accéder à l'application. Avec les nouvelles versions de Docker for Win/Mac et toutes les versions de l'installation de Linux, cela peut être localhost: 8181 sur votre hôte. Si vous utilisez docker-machine (avec docker-toolbox), cette adresse IP doit être votre hôte docker distant ou VM, cette adresse IP sera listée dans docker-machine ls.

+1

Cela a résolu le problème! Je vous remercie :) – user16655