À 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?
Réponses
Trop de publicités?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.
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é).