Comment accéder à tomcat en utilisant Docker container depuis votre navigateur?

j'exécute tomcat dans mon conteneur docker à partir du rapport officiel.

docker pull tomcat

et selon les lignes directrices énoncées dans le page d'accueil j'ai lancé l'instance et le serveur Tomcat est démarré

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

et Tomcat server est disponible sur le port 8888. Je suis en mesure d'obtenir la réponse dans le boot2docker quand j'exécute la commande suivante

curl localhost:8888

Mais je voudrais accéder à la page de mon navigateur web installé dans mon PC (qui est hors de la boîte virtuelle, celui qui est installé dans mes fenêtres). Puis-Je? Si oui, comment?

21
demandé sur Gunith D 2014-12-14 19:59:56

5 réponses

il se peut que vous manquiez une règle de redirection de port dans les paramètres de la 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:virtualBoxPortvirtualBoxPort:containerPort, comme illustré dans le diagramme suivant: enter image description here

22
répondu tduchateau 2014-12-16 20:19:19

il semble Qu'il y ait une meilleure réponse Disponible depuis que Docker-Tools a été introduit il y a quelques mois. Si vous n'utilisez pas Docker Tools, jetez un coup d'oeil à https://docs.docker.com/machine

si vous utilisez des outils Docker,

  1. trouver le nom de la machine docker avec $ docker-machine ls
  2. trouver l'adresse IP du docker avec $ docker-machine ip <machine-name>
  3. utiliser l'adresse ip pour vous connecter, par exemple,$ curl 192.168.99.100
7
répondu Kay V 2015-12-24 18:09:23

exécuter boot2docker ip pour obtenir L'adresse IP de votre pont docker. Ensuite, vous pouvez exécuter curl BRIDGE_IP:8888 L'IP sera quelque chose comme 192.168.59.103. Avec boot2docker, la pile de réseau VMs n'est pas votre hôte local mais fonctionne sur une interface virtuelle.

3
répondu Usman Ismail 2014-12-15 03:37:12

en utilisant docker-machine ls pour obtenir L'IP de L'instance de la boîte virtuelle qui exécute le conteneur. Puis utilisez cela avec le port associé que vous avez exposé, dans mon cas 8080, donc il était http://192.168.99.100:8080.

1
répondu joenova 2016-01-13 20:43:12

option -p a l'argument hostPort:containerPort ainsi, dans votre cas, le port 8080 (à l'intérieur de l'image de votre docker) est mappé au port 8888 sur l'hôte (votre fenêtre). Cela signifie que vous devriez être en mesure de trouver le tomcat sur votre fenêtre Windows en ajoutant :8888 à votre URL, comme vous l'avez fait avec curl.

0
répondu geert3 2014-12-14 18:18:56