2017-01-25 4 views
0

Problem: Das Netzwerk wird nicht zum Host-Computer geroutet. z.B .:Wie debugge ich ein Netzwerk - wahrscheinlich ein Hyperkit-Problem - eines Docker-Setups auf einem Mac?

docker run -tip 80:8080 httpd 

in Apache führt nicht auf localhost reagiert: 8080 auf dem Host-Rechner oder auf docker.local: 8080 oder so etwas. Wenn ich versuche, von innen zu verbinden, funktioniert der Behälter fein:

docker run -ti debian  
curl 172.17.0.2 
<html><body><h1>It works!</h1></body></html> 

es, dass auf der Seite Docker scheint sich alles in Ordnung ist. Auf docker ps erhalten Sie: ... 80/tcp, 0.0.0.0:80->8080/tcp ...

. Umgebung: Neue, saubere Installation des Betriebssystems - OSX Sierra 10.12.2, Docker.app Version 1.13.0 stabil (plus 1.13.0 Beta und 1.12.0 Beta als auch versucht, mit gleichen Ergebnissen).

Annahme: Es ist etwas zwischen Docker und OS unterbrochen. Ich nehme an, dass dieses "Etwas" Hyperkit ist (was für mich wie eine Blackbox ist). Es könnte einige Einstellungen von Build-Skript von hier gebrochen sein: http://bigchaindb-examples.readthedocs.io/en/latest/install.html#the-docker-way das ist docker-machine centric, die Tatsache, die ich wahrscheinlich unterschätzt habe. Fakt ist auch, dass es sich um eine Neuinstallation handelte: Dieses Buildskript war das erste, was ich daran getan habe - ich weiß nicht, ob das Netzwerk tatsächlich vorher funktioniert hat.

Frage: Wie kann ich dieses Zeug diagnostizieren? Ich möchte in der Lage sein zu verfolgen, wo genau der Verkehr verloren geht und es entsprechend zu beheben.

Antwort

1

Ihre Befehlszeilen haben den Ports umgekehrt:

docker run -tip 8080:80 httpd 

, dass die Host-Port ist zunächst mit einer optionalen Schnittstelle zu binden, durch den Containerhafen gefolgt. Sie können dies auch in der Ausgabe docker ps sehen, wobei Port 80 auf dem Host dem Port 8080 im Container zugeordnet ist.

Das andere Problem einige haben, ist der Service im Innern des Behälters auf all Container-Schnittstellen zu hören braucht (0.0.0.0), nicht die localhost-Schnittstelle des Behälters, da sonst die Proxy kann nicht nach vorn Verkehr zu. In den Standardeinstellungen von offiziellen Bildern wird dieses Problem jedoch nicht auftreten und der Befehl curl zeigt, dass dies nicht auf Sie zutrifft.

+0

Sie haben Recht, ich bin unglaublich unaufmerksam. Vielen Dank! – nanoook

Verwandte Themen