我有一台在 Windows Server 2012 R2 上运行的 CentOS 7 Hyper-V VM,它充当我的 Docker 主机。我正尝试使用 Docker 的 macvlan 网络驱动程序将我的容器与其他 VM 一起放置在 LAN 中。
网络:
docker create network -d macvlan --subnet=10.1.0.0/24 --gateway=10.1.0.1 -o parent=eth0 macnet
容器:
docker run --net=macnet -it --ip=10.1.0.2 ubuntu bash
从容器中,我无法 ping 网关。我tcpdump -n -i eth0
在 Docker 主机上执行了此操作,看到arp
来自容器的请求,但没有回复。Docker 主机 VM 的 NIC 是外部网络虚拟交换机,我怀疑这是原因。我是否遗漏了一些配置?
答案1
您需要在 Hyper-V 中启用混杂模式。
Hyper-V > VM > 设置 > NIC(单击加号)> 高级功能 > 启用 MAC 地址欺骗