2016-04-21 9 views
1

Ich bin mit virtualbox lokal und ich habe die Portweiterleitung verwendet wie dieseVirtualbox Port-Forwarding mit Docker

0.0.0.0:7000 -> 0.0.0.0:7000 

, so dass ich zu

curl http://localhost:7000 

von Host zu vm und in der Lage zu tun Kommunizieren Sie mit der Anwendung, die in der VM ausgeführt wird, und hören Sie Port 7000.

Ist es möglich, das Gegenteil zu tun? Ich möchte nach vorne einen Port einstellen können

curl http://localhost:6000 

von meiner vm und der Lage sein, mit der App zu kommunizieren, die auf dem Host läuft und lauscht auf Port 6000.

Ich benutze NAT.

Ich kenne bereits über Bridged-Netzwerk und über die Verwendung der Netzwerk-IP meines Hosts. Ich kann diese nicht benutzen. Ich bin nur an dem oben genannten interessiert.

Exclaimer:

Der Grund der oben genannten Einschränkungen ist, weil ich dinghy mit docker und docker-machine bin mit. Wenn ich das Netzwerk auf etwas anderes als NAT ändere, bricht das Setup ab. Außerdem kann ich nichts anderes als localhost verwenden, da dies die Standardwerte sind, die die Apps haben, und ich brauche sie, um zu kommunizieren, als ob sie beide auf dem Host laufen würden.

+0

So docker läuft in vm? Was ist das Host-Betriebssystem? –

+0

Tut mir leid, ich habe vergessen, hinzuzufügen, Mac OSX El Capitan – alkis

+1

Ich denke, es gibt drei mögliche Optionen: 1. Richten Sie einen SSH-Tunnel mit 'ssh -R ein, siehe http://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-Tunnel-Arbeit. 2. Richten Sie Nginx oder Apache Reverse Proxy auf der VM ein, um den Datenverkehr an den Host weiterzuleiten. 3. Erzwinge der VM, dass 'localhost' deine Host-IP ist, indem du sie zur'/etc/hosts'-Datei hinzufügst (dies birgt das Risiko, andere Dienste zu stören, die davon abhängen, dass localhost 127.0.0.1 ist) –

Antwort

1

Mögliche Optionen:

  1. Richten Sie einen SSH-Tunnel mit ssh -R, siehe https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work

  2. Setup-Nginx oder Apache-Proxy auf dem vm Reverse-Verkehr weiterleiten zu hosten.

  3. die VM erzwingen zu denken localhost Host-IP in das Verzeichnis/etc/hosts-Datei durch Hinzufügen es ist (das das potenzielle Risiko des Brechens von anderen Diensten hat, die auf localhost sein 127.0.0.1 abhängen kann)