【问题标题】:Virtualbox port forwarding with docker使用 docker 进行 Virtualbox 端口转发
【发布时间】: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。我不能用那些。我感兴趣的只是上面的。

感叹词:

上述限制的原因是因为我将dinghydockerdocker-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


【解决方案1】:

可能的选择:

  1. 使用 ssh -R 设置 SSH 隧道,参见 https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work

  2. 在 vm 上设置 Nginx 或 Apache 反向代理以将流量转发到主机。

  3. 通过将 localhost 添加到 /etc/hosts 文件中强制 VM 认为 localhost 是您的主机 ip(这可能会破坏其他可能依赖 localhost 为 127.0.0.1 的服务)

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2015-06-14
    • 2017-11-22
    • 1970-01-01
    • 2021-08-02
    • 2020-11-19
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多