Comment faire pour obtenir l'adresse IP de l'exécution de conteneurs docker
Je suis en utilisant le Panneau pour Mac. Je suis en cours d'exécution un basé sur nodejs microservice dans un conteneur Docker. Je veux tester nœud microservice par le biais du navigateur. Comment faire pour obtenir l'adresse IP de l'exécution de conteneur docker?
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas le mappage de ports à partir de votre hôte pour le conteneur, vous pouvez accéder directement au menu fixe de la gamme ip pour le conteneur. Cette gamme est, par défaut, uniquement accessible à partir de votre hôte. Vous pouvez vérifier votre conteneur de réseau de données en faisant:
Est probablement préférable de filtre:
Généralement, la valeur par défaut docker plage ip est
172.17.0.0/16
. Votre hôte devrait être172.17.0.1
et votre premier conteneur doit être172.17.0.2
si tout est normal et que vous ne précisez pas la spéciale options de réseau.MODIFIER
Une autre façon plus élégante à l'aide de docker fonctionnalités au lieu de "bash tromper":
localhost
🙂http://172.17.0.2:anyPort
à partir de l'hôte. Bien sûr, si vous voulez accéder à l'aide de localhost sur l'hôte, vous devez mapper les ports. Va voir ce que l'OP veut.docker run --name struts --rm -i tomcat
2. Obtenez votre conteneur ip (si vous avez un seul):docker inspect struts | grep '"IPAddress"' | head -n 1
3. Ouvrir sur d'accueil du navigateurhttp://x.x.x.x:8080
. Vous pouvez voir Apache Tomcat par défaut de la page.http://localhost:8888 or http://host-ip:8888
. Parce que c'est la façon dont le Tomcat Docker est configuré, et est configuré pour transmettre 8080 pour le port 8888. Je vous recommande la lecture - docs.docker.com/engine/userguide/networking et à construire conteneur de vous-même pour comprendre comment tout cela fonctionne. Vous ne pouvez pas accéder au menu fixe forme de l'adresse IP interne. C'est une impossibilité. Ce n'est pas comment le réseau fonctionne.-p
utilisation. Comment expliquez-vous cet exemple, j'ai mis, c'est de travailler sans l'aide de-p
sur docker run? Il est accessible à partir de l'hôte. Est tomcat conteneur spécial pour une raison quelconque?-p
option est de mappage de ports à votre ordinateur hôte, mais ce que j'ai proposé est d'accéder directement à du conteneur de la propriété intellectuelle, qui est 100% correct aussi.Utilisation
--format
option pour obtenir l'adresse IP à la place conteneur entier info:si vous souhaitez obtenir ce droit dans le conteneur, vous pouvez essayer
Vous pouvez commencer votre récipient avec le drapeau
-P
. Cette "attribue" un port aléatoire à l'exposé de port de votre image.Avec
docker port <container id>
vous pouvez voir la aléatoirement choisi de port. L'accès est possible vialocalhost:port
.Moderne docker moteurs, utilisez cette commande :
et pour les plus âgés d'utilisation de moteurs :
Pour mon cas, ci-dessous travaillé sur Mac:
Je ne pouvais pas accéder à conteneur IPs directement sur Mac. J'ai besoin d'utiliser
localhost
avec la redirection de port, par exemple, si le port 8000, alorshttp://localhost:8000
Voir https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds
L'original de la réponse était de: https://github.com/docker/for-mac/issues/2670#issuecomment-371249949
Vous ne pouvez pas accéder au menu fixe IP en dehors de la machine hôte.
Si votre navigateur est sur une autre machine meilleur à la carte d'hôte port à conteneurs du port en passant
-p 8080:8080
pour exécuter la commande.Passant
-p
vous pouvez carte d'hôte port de port de conteneurs et d'un proxy est configuré pour transférer tous les traffix pour dit port de l'hôte désigné port à conteneurs.