web-dev-qa-db-ja.com

インターネットからvirtualboxのdockerコンテナーにアクセスできません

Windows 10にToolBoxをインストールしています。
ポート8000​​で外部で開かれたマシンとNginxコンテナを作成しました。

enter image description here

DockerマシンのIPは192.168.99.100、コンテナのIPは172.17.0.2です。
Windowsから192.168.99.100:8000としてNginxにアクセスできます。さらに、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 ousideに接続できないことです。ルーターからtelnet 192.168.1.3 8000を試しました-接続が拒否されましたWindowsマシンにウイルス対策ソフトウェアがなく、firewalがオフになっています。

9
Alexey

しばらくしたら自分で解決策を見つけましょう:)

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

スクリーンショットにhttpのようなルールを追加します。

enter image description here

ルールsshdocker-machine createによって自動的に追加されました。最後の問題は、Dockerがポートを公開したコンテナを作成するときに、httpルールを自動的に追加する方法です。

7
Alexey