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和它的網絡了