Docker for Windows问题

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和它的网络了