我使用以下命令创建了一个macvlan网络:
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.2 -o parent=wlp2s0 pub_ne
wlp2s0是笔记本电脑无线接口的名称。 网关是192.168.1.1,子网是192.168.1.0/24
然后我创建了一个容器并将其附加到该网络:
docker run --rm -itd --network pub_ne --name myAlpine alpine:latest sh
此外,我还使用带有桥接网络接口的virtualbox provider创建了一个虚拟机。
如果我使用ping命令: -docker容器-> vm ubuntu(vm的IP:192.168.1.200):ping有效
但是如果我使用ping命令: -docker容器->网关192.168.1.1 要么 -docker容器->外部环境(google.com):ping不起作用
建议?
修改1:
在docker主机上,如果我运行tcpdump( tcpdump -i icmp ),我会看到:
14:53:30.015822 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 29, length 64 14:53:31.016143 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 30, length 64 14:53:32.016426 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 31, length 64 14:53:33.016722 IP 192.168.1.56 > 216.58.205.142: ICMP echo request, id 5376, seq 32, length 64
其中192.168.1.56是我的docker容器,而216.58.205.142应该是google ip地址。没有收到回音回复。
答案 0 :(得分:1)
Macvlan不太可能与IEEE 802.11一起使用。
您的wifi接入点和/或主机网络堆栈不会令人兴奋。
您可能想尝试使用ipvlan:将-o ipvlan_mode=l2
添加到网络创建调用中,看看是否有帮助。
这可能仍然无法正常工作...(例如,如果您依赖DHCP,而您的DHCP服务器使用macaddress而不是客户端ID)
您唯一(合理的)解决方案可能是完全断开wifi并改为连接设备...(或远离macvlan并使用host / bridge-以最方便的方式为准)