2017-04-18 1 views
0

Ich habe einige Docker Container auf zwei verschiedenen Hosts Maschine, MAc OSX und Ubuntu 16.04Warum Docker Container Host nicht wie in/etc/Hosts auf Host-Rechner definiert auflösen?

Taken einer nach dem anderen werden sie korrekt über HTTP von jedem Host-Rechner bedient. Das Problem kommt, wenn ich gehosteten Container auf Ubuntu gegenseitig auflösen muss. (Unter Mac OS X alles funktioniert gut)

Auf beiden Host-Maschinen, die ich bearbeitet haben die/etc/hosts-Datei wie:

192.168.0.13 mycontainer01.dev 
192.168.0.13 mycontainer02.dev 
192.168.0.13 mycontainer03.dev 

(auf dem zweiten Host-Maschine, die ich andere IP klar haben)

Wenn ich mycontainer01.dev von (außerhalb) jeder Host-Maschine anpinge, bekomme ich die IP-Adresse zurück, wie in der hosts-Datei definiert.

Aber wenn ich geben Sie den nginx Behälter:

docker-compose exec nginx bash 

auf macosx ping mycontainer01.dev gelingen wird

auf Ubuntu Fehler zurück: $ ping myconteiner01.dev

ping: falsche Adresse

Antwort

0

Da Sie nicht auf die Datei/etc/hosts zugreifen können Host-Maschine im Docker-Container.

+0

Wenn ja ... warum funktioniert es stattdessen auf meinem MacOSX Host-Rechner? – koalaok

+0

Da MacOS X DNS-Caching verwendet (und Sie müssen es nach der Bearbeitung von/etc/hosts unter MacOS X löschen): https://www.tekrevue.com/tip/edit-hosts-file-mac-os-x/ Unter Linux (auf den meisten Distributionen) haben Sie nicht DNS-Caching: http://stackoverflow.com/questions/11020027/dns-caching-in-linux –

+0

ok danke. Also gibt es keine Lösung? – koalaok

Verwandte Themen