Supposons que j'ai un serveur fonctionnant sur le port 8000 sous OSX. Comment mon conteneur Docker peut-il y accéder via localhost:8000
? Je ne peux pas non plus changer le nom d'hôte car l'application dans le conteneur n'est pas sous mon contrôle.
J'ai lu cette discussion précédente sur l'utilisation de --net="Host"
pour qu'un conteneur accède au réseau de la machine hôte. Cependant, je suis sur OSX et Docker s'exécute dans un VM donc localhost du conteneur Docker avec --net="Host"
va à la VM et non ma vraie machine.
Ensuite, j'ai essayé solution de contournement de redirection de port comme ceci: VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
en vain.
Toute suggestion serait grandement appréciée.
Grâce à la réponse de palimpestor, je l'ai compris:
Au lieu de --net="Host"
, utilisation --add-Host="localhost:10.0.2.2"
Effectivement:
--add-Host...
ajoute localhost 10.0.2.2
dans/etc/hosts ( référence )Remarque: vous devez avoir configuré un adaptateur NAT dans votre boot2docker VM VirtualBox (je l'ai fait via l'interface graphique, je ne connais pas la CLI) .
Au lieu de courir avec --net="Host"
, essayez --add-Host="localhost:192.168.59.3"
, qui est l'IP de l'hôte boot2docker.