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?
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:
ainsi vous avez configuré toute la chaîne:hostPort:virtualBoxPort
virtualBoxPort:containerPort
, comme illustré dans le diagramme suivant:
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,
- trouver le nom de la machine docker avec
$ docker-machine ls
- trouver l'adresse IP du docker avec
$ docker-machine ip <machine-name>
- utiliser l'adresse ip pour vous connecter, par exemple,
$ curl 192.168.99.100
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.
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
.
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.