46 votes

Comment se connecter à un hôte Docker à partir d'un conteneur sous Windows 10 (Docker pour Windows)

À quelle adresse IP un conteneur Docker peut-il se connecter à son hôte sous Docker pour Windows (sous Windows 10)? Comment trouvez-vous cette adresse IP?

Exemple: un service est exécuté sur le port 1234 sur votre ordinateur Windows 10. Un programme dans votre conteneur doit accéder à ce service. Quelle adresse IP le programme doit-il utiliser pour se connecter à l'hôte?

68voto

RemiX Points 450

Réponse courte: dans la plupart des cas, vous aurez besoin 10.0.75.1 .

Dans le menu fixe pour Windows, le conteneur communique par le biais d'un vEthernet adaptateur appelé DockerNAT. Pour trouver ses détails, ouvrez l'Invite de Commande et tapez

ipconfig

Recherchez une entrée qui ressemble à

Ethernet adapter vEthernet (DockerNAT):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::fd29:297:4583:3ad4%4
   IPv4 Address. . . . . . . . . . . : 10.0.75.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

L'adresse IP à la droite de l' IPv4 Address est celui dont vous avez besoin.

Remarque: assurez-vous que le service permet les connexions depuis l'extérieur de votre hôte. Ce service est concerné, votre conteneur docker est une machine différente. Assurez-vous également que le Pare-feu Windows qui permet la communication et du service.

28voto

tomas.zigardi Points 167

L'une des options qui vous permet de vous connecter à partir conteneur d'hôtes, c'est à exécuter votre récipient avec le paramètre

--net="host"

Exemple:

docker run -it --net="host" container_name

Puis, à partir de conteneur, vous pouvez vous connecter au service de l'hôte à l'aide de:

localhost:port

Mais dans ce cas, vous ne serez pas en mesure de relier plusieurs conteneurs à l'aide d' --link paramètre.

Plus sur ce sujet: http://phillbarber.blogspot.sk/2015/02/connect-docker-to-service-on-parent-host.html

Mise à JOUR:

À partir de la version 18.03, vous pouvez utiliser le nom DNS host.docker.internal, ce qui résout l'adresse IP interne utilisé par l'hôte.

Plus: https://docs.docker.com/docker-for-windows/networking/

Sur les anciennes versions, vous pouvez vous connecter à un service en cours d'exécution sur l'hôte Windows à l'aide de l'adresse IP que vous obtenez de l'exécution de la commande ipconfig sur host -> adaptateur Ethernet -> Adresse IPv4

Mise à JOUR Comme par Datz commentaire ci-dessous, docker.for.win.localhost travaille dans le menu fixe pour Windows (confirmé).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X