2015-04-13 10 views
9

ich einen Docker Dämon gestartet in der Host-Maschine zu einem gewissen IP-Adresse und Port hören habe, sage 10.10.10.10 und Port 1234, dann beginne ich einen Container vonSo stellen Sie eine Verbindung zum Service auf dem Host-Computer in einem Andock-Container her?

Aufruf
sudo docker -H 10.10.10.10:1234 centos /bin/bash 

Mittlerweile habe ich einen Web-Service runnig auf dem Hostcomputer, der auf dem Port 8080 ausgeführt wird. Dann kann ich mich vom Container aus nicht mehr mit diesem Server verbinden. Ich habe versucht,

curl http://10.10.10.10:8080 

bekam aber eine Fehlermeldung:

curl: (7) couldn't connect to host 

Aber ich den Server in anderen Maschinen zugreifen kann, wie http://10.10.10.11:8080 es, dass Docker Behälter scheint nicht den Dienst in seinem eigenen Host-Rechner zugreifen? Gibt es trotzdem etwas zu beheben? Danke

+0

Siehe http://stackoverflow.com/questions/27556301/connect-to-local-mysql-server-through-docker/27564532#27564532 – Bryan

Antwort

6

Das wurde in issue 1143 und dort might be one day a --link-host option diskutiert.

In der Zwischenzeit der Blog-Eintrag "Accessing the Docker Host Server Within a Container" listet einige Option:

  • Der Gateway Ansatz: netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
  • Der Ansatz IP: boot2docker IP-Adresse ist 192.168.59.103.

Zwar gibt es keine Möglichkeit, die Host-IP-Adresse (AFAIK) introspect können Sie dies in über eine Umgebungsvariable übergeben:

[email protected]:~$ docker run -i -t -e DOCKER_HOST=192.168.59.103 ubuntu /bin/bash 
[email protected]:/# env 
HOSTNAME=07561b0607f4 
DOCKER_HOST=192.168.59.103 

Sie haben andere Optionen in "Network Configuration", mit die virtuelle Schnittstelle mit dem Namen docker0 auf dem Hostcomputer.

+0

Danke, das hat für mich funktioniert :) –

Verwandte Themen