docker 启动后 Wifi 连接断开
Posted
技术标签:
【中文标题】docker 启动后 Wifi 连接断开【英文标题】:Wifi connection dropped after docker start 【发布时间】:2017-07-20 20:57:08 【问题描述】:我通过 Wifi 登录到我的 Lubuntu 16.04.2 LTS 服务器,每次启动 docker 容器时,我的连接都会断开。因为我对 docker 比较陌生,我只能猜测这与 dockers 虚拟网络的创建有关。我还应该提到我禁用了 ipv6,但如果启用它没有任何区别。
这是我的syslog,它显示了当我运行sudo docker run -it ubuntu bash
时会发生什么。在它冻结之前,我可以看到容器/ubuntu 提示 2-3 秒。使用--net=host
运行它可以,但不是我想要的。
ifconfig
显示
docker0 Link encap:Ethernet HWaddr 02:42:8d:8b:b7:4c
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:162 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:536 (536.0 B) TX bytes:9678 (9.6 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:538 errors:0 dropped:0 overruns:0 frame:0
TX packets:538 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:49592 (49.5 KB) TX bytes:49592 (49.5 KB)
vethee1cf14 Link encap:Ethernet HWaddr ba:53:4c:08:89:64
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:648 (648.0 B) TX bytes:9888 (9.8 KB)
wlp2s0 Link encap:Ethernet HWaddr f4:06:69:5d:ba:f6
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:3082 errors:0 dropped:0 overruns:0 frame:0
TX packets:2916 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:556197 (556.1 KB) TX bytes:569381 (569.3 KB)
docker network inspect bridge
显示
[
"Name": "bridge",
"Id": "8ec46d17f5cba798c8aba5c8457e019dcb24eade1285054f59c3430c33ff74f8",
"Created": "2017-03-04T10:44:27.966018717+01:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM":
"Driver": "default",
"Options": null,
"Config": [
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
]
,
"Internal": false,
"Attachable": false,
"Containers": ,
"Options":
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
,
"Labels":
]
随着 docker 停止 ip a
显示
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f4:06:69:5d:ba:f6 brd ff:ff:ff:ff:ff:ff
inet 192.168.178.21/24 brd 192.168.178.255 scope global wlp2s0
valid_lft forever preferred_lft forever
inet6 fe80::f606:69ff:fe5d:baf6/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:6f:0c:38:7a brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
我的 Wifi 连接会怎样?任何帮助表示赞赏。如果更多信息对您有帮助,请告诉我。
更新
谢谢你的帮助。根据我目前得到的回复,我的网络配置似乎有问题。
cat /etc/NetworkManager/NetworkManager.conf
显示
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=false
cat /etc/network/interfaces
显示
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
由于我没有进行特殊配置,所以对我来说一切都很好。有什么建议我可以在哪里寻找信息或如何解决这个问题?
更新
nmcli dev
显示
DEVICE TYPE STATE CONNECTION
docker0 bridge connected docker0
wlp2s0 wifi unavailable --
vethf9342a9 ethernet unmanaged --
lo loopback unmanaged --
当 docker 运行时
DEVICE TYPE STATE CONNECTION
docker0 bridge connected docker0
wlp2s0 wifi connected meins
lo loopback unmanaged --
当 docker 停止时。
更新
在/etc/NetworkManager/NetworkManager.conf
中添加了以下行,以使 NetworkManager 忽略 docker 接口。
[keyfile]
unmanaged-devices=interface-name:docker0;interface-name:veth*
网络管理器忽略了接口,但问题仍然存在。所以我的猜测是,这是我的 DHCP 配置的问题。
更新
DHCP 客户端似乎确实有问题。禁用它会有所帮助。有什么解决方法的建议吗?
【问题讨论】:
您能否在您的问题中包含docker network inspect bridge
的输出。此外,当 docker 停止并且 wifi 正常工作时,ip a
会显示什么?
您是否还可以包含用于启动容器的完整 docker run
命令(或撰写文件)?
@BMitch:在描述中包含了完整的命令。 - 事实上,确切的命令似乎并不重要。创建虚拟 docker 网络的所有命令都会导致我的 wifi 断开连接。
您的网络配置有问题。您的容器网络看起来像是在践踏您的主机网络。 veth48067d8:使用静态地址 192.168.178.21/24 wlp2s0:使用静态地址 192.168.178.21/24
我面临同样的问题,@NaN 你有没有找到任何解决方案?我在这里找不到任何答案。
【参考方案1】:
Ubuntu 18.04
上的同样问题。
我认为将以下内容添加到文件/etc/NetworkManager/NetworkManager.conf
中已经解决了这个问题:
[keyfile]
unmanaged-devices=interface-name:docker0;interface-name:veth*
你还需要做一些其他的事情:
-
停止所有 docker 容器;
sudo service network-manager restart
重启网络,现在你的wifi应该可以正常使用了;
再次启动您的 docker 容器,我的 wifi 目前仍在工作。
2019 年 3 月 14 日
参考:https://askubuntu.com/a/1009402/620445
【讨论】:
【参考方案2】:从您的日志中对我来说最突出的几行是:
Mar 1 13:54:44 kodi NetworkManager[1054]: <info> [1488372884.3614] device (docker0): link connected
Mar 1 13:54:44 kodi dhcpcd[1240]: veth48067d8: IAID 3a:d3:8a:28
Mar 1 13:54:44 kodi dhcpcd[1240]: veth48067d8: using static address 192.168.178.21/24
Mar 1 13:54:44 kodi dhcpcd[1240]: wlp2s0: preferring 192.168.178.21 on veth48067d8
Mar 1 13:54:44 kodi dhcpcd[1240]: veth48067d8: adding route to 192.168.178.0/24
Mar 1 13:54:44 kodi dhcpcd[1240]: veth48067d8: adding default route via 192.168.178.1
在我自己的环境中,NetworkManager看到链接连接后,只看到如下:
Mar 5 12:32:39 bmitch-asusr556l NetworkManager[827]: <info> devices removed (path: /sys/devices/virtual/net/veth365c591, iface: veth365c591)
Mar 5 12:32:39 bmitch-asusr556l NetworkManager[827]: <info> (vethf29a6bb): link connected
Mar 5 12:32:41 bmitch-asusr556l avahi-daemon[835]: Joining mDNS multicast group on interface vethf29a6bb.IPv6 with address fe80::34c0:66ff:fe89:26ec.
Mar 5 12:32:41 bmitch-asusr556l avahi-daemon[835]: New relevant interface vethf29a6bb.IPv6 for mDNS.
Mar 5 12:32:41 bmitch-asusr556l avahi-daemon[835]: Registering new address record for fe80::34c0:66ff:fe89:26ec on vethf29a6bb.*.
我在上面的 cmets 中的问题是如何确定您是否以某种方式将容器 IP 硬编码到 192.168.178.x 网络。由于这没有发生,您应该看到容器以 172.17.0.x 地址旋转。您的环境中似乎存在 NetworkManager 或 dhcpd 配置错误,它试图为 docker 容器 (veth) 提供与您的无线 (wlp2s0) 使用的 IP 相同的 IP,然后该容器被列为首选连接.
【讨论】:
没有向下滚动到足以看到这个。您的网络配置有问题。【参考方案3】:我查看了您发布的系统日志,似乎存在一些身份验证问题:
Mar 1 13:54:45 kodi kernel: [351489.718503] wlp2s0: deauthenticating from 34:31:c4:0c:bf:24 by local choice (Reason: 3=DEAUTH_LEAVING)
Mar 1 13:54:45 kodi dhcpcd[1240]: veth48067d8: carrier acquired
Mar 1 13:54:45 kodi wpa_supplicant[1259]: wlp2s0: CTRL-EVENT-DISCONNECTED bssid=34:31:c4:0c:bf:24 reason=3 locally_generated=1
Mar 1 13:54:45 kodi NetworkManager[1054]: <warn> [1488372885.1783] sup-iface[0x23b4210,wlp2s0]: connection disconnected (reason -3)
Mar 1 13:54:45 kodi kernel: [351489.751908] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
暂时我只能说,请通过我在下面粘贴的链接:
https://docs.docker.com/engine/admin/#logs-1
http://www.tutorialspoint.com/articles/how-to-install-and-use-docker-on-ubuntu-16-04
如果这不能解决您的问题,请按照调试步骤发布更合适的日志。
【讨论】:
以上是关于docker 启动后 Wifi 连接断开的主要内容,如果未能解决你的问题,请参考以下文章