Docker 网络 macvlan 驱动程序:网关无法访问
Docker network macvlan driver: gateway unreachable
我有一个使用以下命令创建的 macvlan 网络:
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.2 -o parent=wlp2s0 pub_ne </pre>
其中 wlp2s0 是我笔记本电脑无线接口的名称。
网关是 192.168.1.1 和子网 192.168.1.0/24
然后我创建了一个容器并将其附加到该网络:
docker run --rm -itd --network pub_ne --name myAlpine alpine:latest sh</pre>
此外,我还使用 virtualbox 提供程序创建了一个具有桥接网络接口的虚拟机。
如果我使用 ping 命令:
- docker 容器 -> 虚拟机 ubuntu(虚拟机的 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 地址。没有收到回显回复。
Macvlan 不太可能与 IEEE 802.11 一起工作。
您的 wifi 接入点,and/or 您的主机网络堆栈,不会激动。
您可能想改用 ipvlan:将 -o ipvlan_mode=l2
添加到您的网络创建调用中,看看是否有帮助。
那很可能仍然行不通...(例如,如果您依赖 DHCP 并且您的 DHCP 服务器使用 macaddresses 而不是客户端 ID)
你唯一的(合理的)解决方案可能是完全放弃 wifi 并改为连接设备......(或者远离 macvlan 并使用主机/网桥 - 以最方便的为准)
我有一个使用以下命令创建的 macvlan 网络:
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.2 -o parent=wlp2s0 pub_ne </pre>
其中 wlp2s0 是我笔记本电脑无线接口的名称。 网关是 192.168.1.1 和子网 192.168.1.0/24
然后我创建了一个容器并将其附加到该网络:
docker run --rm -itd --network pub_ne --name myAlpine alpine:latest sh</pre>
此外,我还使用 virtualbox 提供程序创建了一个具有桥接网络接口的虚拟机。
如果我使用 ping 命令: - docker 容器 -> 虚拟机 ubuntu(虚拟机的 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 地址。没有收到回显回复。
Macvlan 不太可能与 IEEE 802.11 一起工作。
您的 wifi 接入点,and/or 您的主机网络堆栈,不会激动。
您可能想改用 ipvlan:将 -o ipvlan_mode=l2
添加到您的网络创建调用中,看看是否有帮助。
那很可能仍然行不通...(例如,如果您依赖 DHCP 并且您的 DHCP 服务器使用 macaddresses 而不是客户端 ID)
你唯一的(合理的)解决方案可能是完全放弃 wifi 并改为连接设备......(或者远离 macvlan 并使用主机/网桥 - 以最方便的为准)