無法從 Internet 存取 virtualbox 上的 docker 容器

無法從 Internet 存取 virtualbox 上的 docker 容器


我在Windows 10 上安裝了 ToolBox。

在此輸入影像描述

Docker機器的IP是192.168.99.100,容器的IP是172.17.0.2
我可以從 Windows 存取 Nginx 作為192.168.99.100:8000.更重要的是,我可以從 Windows 主機直接存取172.17.0.2:80.我也可以從容器內上網。

全部配置如下:

Container (Nginx)           Docker Host (VirtualBox)            Host (Windows 10)                                                     Router
172.17.0.2:80 <-----------> 172.17.0.1 (docker0)
                            10.0.2.15 (eth0)
                            192.168.99.100:8000 (eth1) <------> 192.168.99.1 (Ethernet 2, VirtualBox Host-Only Ethernet Adapter)
                                                                192.168.1.3 (Ethernet, Intel Hardware Adapter) <--------------------> 192.168.1.1
                                                                                                                                      <Internet static IP address> <-----------> Provider

問題是我無法連接 Windows 主機以外的 Nginx。嘗試telnet 192.168.1.3 8000從路由器 - 連線被拒絕。我的 Windows 機器上沒有任何防毒軟體,防火牆已關閉。

答案1

一段時間後我自己找到了解決方案:)

VirtualBox -> Machine settings -> Network -> Adapter 1 (NAT) -> Advanced, Port Forwarding

新增規則,如http螢幕截圖所示:

在此輸入影像描述

規則ssh已自動新增docker-machine create。最後一個問題是http,當docker建立暴露連接埠的容器時,如何自動新增規則。

答案2

你的標題是互聯網,但你的解決方案更喜歡你的意思是區域網路。

這段程式碼做了類似的技巧:

netsh interface portproxy add v4tov4 listenport=80 connectaddress=192.168.99.100 connectport=8000 protocol=tcp

相關內容