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.
So docker läuft in vm? Was ist das Host-Betriebssystem? –
Tut mir leid, ich habe vergessen, hinzuzufügen, Mac OSX El Capitan – alkis
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) –