windows - Docker for Windows Hyper V 默认交换机 IP
问题描述
Hyper V 默认交换机 IP 在 C 类和 D 类之间发生变化,因此每次重新启动后,您都会得到 172.17.xx 或 192.168.xx 这似乎是迄今为止我可以阅读的所有 Windows 10 安装的众所周知的“功能”。
我的问题是,如果 Hyper Default 开关保持在 172.17.xx 上,为什么一个正在运行的 docker 容器 - 开箱即用,没有任何额外的 docker 网络桥接 - 无法与互联网通信
仅当我获得 192.168.xx 时才有效,我认为原因是 Docker 默认开关也是 172.xxx
关于 Windows 10 上 Hyper V 默认开关的当前行为,如何为正在运行的容器配置配置稳定的网络?
路线打印 - 输出:
===========================================================================
Schnittstellenliste
8...54 bf 64 a6 c1 0a ......Intel(R) Ethernet Connection (2) I219-LM
9...00 15 5d e5 81 12 ......Hyper-V Virtual Ethernet Adapter #2
20...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
2...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
1...........................Software Loopback Interface 1
21...96 15 9f 09 b1 88 ......Hyper-V Virtual Ethernet Adapter
===========================================================================
IPv4-Routentabelle
===========================================================================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Metrik
0.0.0.0 0.0.0.0 10.8.32.1 10.8.40.242 6
10.0.75.0 255.255.255.0 Auf Verbindung 10.0.75.1 271
10.0.75.1 255.255.255.255 Auf Verbindung 10.0.75.1 271
10.0.75.255 255.255.255.255 Auf Verbindung 10.0.75.1 271
10.8.32.0 255.255.240.0 Auf Verbindung 10.8.40.242 259
10.8.40.242 255.255.255.255 Auf Verbindung 10.8.40.242 259
10.8.47.255 255.255.255.255 Auf Verbindung 10.8.40.242 259
127.0.0.0 255.0.0.0 Auf Verbindung 127.0.0.1 331
127.0.0.1 255.255.255.255 Auf Verbindung 127.0.0.1 331
127.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 331
192.168.60.0 255.255.255.0 Auf Verbindung 192.168.60.1 291
192.168.60.1 255.255.255.255 Auf Verbindung 192.168.60.1 291
192.168.60.255 255.255.255.255 Auf Verbindung 192.168.60.1 291
192.168.137.144 255.255.255.240 Auf Verbindung 192.168.137.145 5256
192.168.137.145 255.255.255.255 Auf Verbindung 192.168.137.145 5256
192.168.137.159 255.255.255.255 Auf Verbindung 192.168.137.145 5256
192.168.254.0 255.255.255.0 Auf Verbindung 192.168.254.1 291
192.168.254.1 255.255.255.255 Auf Verbindung 192.168.254.1 291
192.168.254.255 255.255.255.255 Auf Verbindung 192.168.254.1 291
224.0.0.0 240.0.0.0 Auf Verbindung 127.0.0.1 331
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.60.1 291
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.254.1 291
224.0.0.0 240.0.0.0 Auf Verbindung 10.0.75.1 271
224.0.0.0 240.0.0.0 Auf Verbindung 10.8.40.242 259
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.137.145 5256
255.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 331
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.60.1 291
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.254.1 291
255.255.255.255 255.255.255.255 Auf Verbindung 10.0.75.1 271
255.255.255.255 255.255.255.255 Auf Verbindung 10.8.40.242 259
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.137.145 5256
===========================================================================
Ständige Routen:
Keine
IPv6-Routentabelle
===========================================================================
Aktive Routen:
If Metrik Netzwerkziel Gateway
1 331 ::1/128 Auf Verbindung
1 331 ff00::/8 Auf Verbindung
===========================================================================
Ständige Routen:
Keine
解决方案
这是由于 Default Switch 造成的。我们可以通过创建一个单独的交换机并使用 NATTING 对其进行配置来修复它
Open Hyper-V Manager (Windows search : “Hyper-V …”)
Go to Virtual Switch Manager on the right side.
Go to DockerNAT then choose Connection type -> to External network -> #which interface you deside.
创建了一个 windows nanoserver 容器,为 Docker 配置了 NIC 到 NAT,它在 windows 10 机器上运行良好
PS C:> docker run mcr.microsoft.com/windows/nanoserver:1809 ping google.com
Pinging google.com [216.58.203.206] with 32 bytes of data:
Reply from 216.58.203.206: bytes=32 time=56ms TTL=55
Reply from 216.58.203.206: bytes=32 time=58ms TTL=55
Reply from 216.58.203.206: bytes=32 time=38ms TTL=55
Ping statistics for 216.58.203.206: Packets: Sent = 4,
Received = 4, Lost = 0 (0% loss),
另外,我不确定它为什么挂起。您使用的是 unix Containers 还是 Win?
推荐阅读
- cmake - Can not set the compiler flags for Fortran using Cmake
- java - 即使在应用程序关闭时也显示意图对话框
- django - 芹菜定期任务多次执行
- mpi - 使用 MPI_Bsend 在多个等级之间进行数据交换
- kotlin - 在 init 块中初始化变量并在 kotlin 中为变量定义一个 setter
- python - 代码不断抛出错误```命令帮助已经是现有命令或别名```为什么会这样,我该如何解决?
- flutter - Flutter:将有状态的小部件组合成一个 Flutter-redux 应用架构
- javascript - 如何重写 HTML 页面以获得完全相同的字段?
- flutter - 如何在模型中拥有对象的 ArrayList
- javascript - 如何在firebase中获取新创建用户的用户ID