【发布时间】:2016-04-21 21:46:31
【问题描述】:
我在本地运行virtualbox,并且我使用过这样的端口转发
0.0.0.0:7000 -> 0.0.0.0:7000
这样我就可以了
curl http://localhost:7000
从主机到虚拟机,并能够与在虚拟机中运行并监听端口7000的应用程序通信。
是否可以反过来?我想设置一个端口转发以便能够
curl http://localhost:6000
来自我的虚拟机,并且能够与在主机上运行并侦听端口 6000 的应用程序进行通信。
我正在使用NAT。
我已经了解桥接网络以及使用主机的网络 IP。我不能用那些。我感兴趣的只是上面的。
感叹词:
上述限制的原因是因为我将dinghy 与docker 和docker-machine 一起使用。如果我将网络更改为 NAT 以外的其他网络,则设置将中断。此外,我不能使用 localhost 以外的其他东西,因为这些是应用程序的默认设置,我需要它们进行通信,就好像它们都在主机上运行一样。
【问题讨论】:
-
所以docker在vm里面运行?主机操作系统是什么?
-
对不起,我忘记补充了,Mac OSX El Capitan
-
我认为有三种可能的选择: 1. 使用
ssh -R设置SSH 隧道,参见unix.stackexchange.com/questions/46235/…。 2. 在虚拟机上设置 Nginx 或 Apache 反向代理,将流量转发到主机。 3. 通过将/etc/hosts文件添加到/etc/hosts文件中强制VM 认为localhost是您的主机IP(这有可能破坏其他可能依赖于localhost 为127.0.0.1 的服务) -
@warmoverflow 你可以添加你的评论作为答案,以便我接受吗?
-
@alkis 你能推荐一些源如何为 docker 进行端口转发以在浏览器上运行 localhost 吗?
标签: docker virtualbox portforwarding dinghy