Docker for Windows問題 - Container不能與Docker Host所處的其他電腦溝通

Container不能與Docker Host所處的其他電腦溝通如何解決?

今日在玩Dockers時發現Docker for Windows的一個小問題

假設使用預設的bridge network時, 建立出來的Container能夠成功做到Port Mapping

也能夠與Internet的東西進行連線, 但奇怪卻唯獨不能和Host或任何其他與Host處於同一Network的電腦溝通.

情況類似於以下情況 (192.168.5.0/24 是Host所處的網絡位置)

問題在於安裝Docker for Windows時, 需要啟用Hyper-V元件

安裝程式會自動製造出一個v-Switch名叫vEthernet (DockerNAT)

開啟Hyper-V Manager, 你會發現Windows 10正在運行一台Linux VM, 開啟Virtual Switch Manager

dockerNAT這個vSwitch預設是一個Internal Switch

只要把這個Virtual Switch改為External Network, 綁在一塊具有對外網絡連接能力的NIC上

現在Container應該可以連接到Host和它的網絡了