web-dev-qa-db-fra.com

Comment accéder à Tomcat s'exécutant dans un conteneur Docker à partir d'un navigateur?

Je lance Tomcat dans mon conteneur de docker du dépôt officiel.

docker pull Tomcat

Et selon les instructions indiquées dans la homepage J'ai exécuté l'instance et le serveur Tomcat est démarré

docker run -it --rm -p 8888:8080 Tomcat:8.0

Et le serveur Tomcat est disponible sur le port 8888. Je peux obtenir la réponse dans le boot2docker lorsque j'exécute la commande suivante.

curl localhost:8888

Mais je voudrais accéder à la page à partir de mon navigateur Web installé sur mon PC (qui est hors de la Virtual Box, celle qui est installée dans mon Windows). Puis-je? Si c'est le cas, comment?

22
JavaTechnical

Il se peut qu'il manque une règle de transfert de port dans les paramètres de VirtualBox.

boot2docker vm > settings > Network > NAT adapter > Port forwarding

Notez la dernière entrée:

enter image description here

Ainsi, vous avez configuré toute la chaîne: hostPort:virtualBoxPort puis virtualBoxPort:containerPort, comme indiqué dans le diagramme suivant:enter image description here

22
tduchateau

Il semble y avoir une meilleure réponse disponible depuis que Docker-Tools a été introduit il y a quelques mois. Si vous n'utilisez pas Docker Tools, consultez https://docs.docker.com/machine

Si vous utilisez Docker Tools, 

  1. trouvez le nom de la machine de docker avec $ docker-machine ls
  2. trouver l'adresse IP du menu fixe avec $ docker-machine ip <machine-name>
  3. utilisez l'adresse IP pour vous connecter, par exemple. $ curl 192.168.99.100
7
Kay V

lancez boot2docker ip pour obtenir l’adresse IP de votre pont fixe. Ensuite, vous pouvez exécuter curl BRIDGE_IP:8888 L’adresse IP sera quelque chose comme 192.168.59.103. Avec boot2docker, la pile de mise en réseau des ordinateurs virtuels n’est pas votre hôte local, mais fonctionne sur une interface virtuelle.

3
Usman Ismail

Utilisation de docker-machine ls pour obtenir l'adresse IP de l'instance de Virtual Box exécutant le conteneur. Puis utilisez cela avec le port associé que vous avez exposé, dans mon cas 8080, donc http://192.168.99.100:8080.

1
joenova

l'option -p a l'argument hostPort:containerPort. Ainsi, dans votre cas, le port 8080 (dans votre image de menu fixe) est mappé sur le port 8888 de l'hôte (votre zone Windows). Cela signifie que vous devriez pouvoir trouver le Tomcat sur votre machine Windows en ajoutant :8888 à votre URL, comme vous le faisiez avec curl.

0
geert3