- 作者:
- 分类:知识&开发->OS->Linux基本
- 阅读:5272
- 点赞:14
- 版权:CC BY-SA 4.0
- 创建:2022-03-23
- 更新:2022-03-23
docker 的虚拟网卡 docker0 没有了 ip 地址,导致 docker 无法使用网络
版权声明:本文为 neucrack 的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接(持续更新):https://neucrack.com/p/416
原文链接(持续更新):https://neucrack.com/p/416
查看 docker bridge 的IP发现没有 IPv4 地址
ifconfigdocker0: flags=4355<UP,BROADCAST,PROMISC,MULTICAST> mtu 1500ether **:**:**:**:**:** txqueuelen 0 (Ethernet)RX packets 1219 bytes 36936 (36.9 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 8544 bytes 4236914 (4.2 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ip addrdocker0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue state DOWN group defaultlink/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
临时解决方法
检查默认bridge配置,建议改成默认的172.17.0.1/16
sudo vim /etc/docker/daemon.json"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"],"bip":"172.17.0.1/16"
临时解决方法: 手动增加一个 ip 配置
> sudo ip addr add 172.17.0.1/16 dev docker0> ip addrdocker0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue state DOWN group defaultlink/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 scope global docker0valid_lft forever preferred_lft forever
再使用 docker 就发现可以使用了
彻底解决方法
- 前面的方法,如果重启 docker 服务发现 ip 又没了
以前是好好的,在一次同事添加多张网卡后就经常出问题, 应该是设置有错, 用systemctl看了下网络服务,同时有networkd和NetworkManager,估计是 docker 创建 docker0 的时候用的是 systemd-networkd,后来被切换成NetworkManager,NetworkManager又没有docker0的配置信息导致的?于是:
既然用了 NetworkManager,那干脆就统一用它,去配置它吧,如果是用networkd,估计重启一下服务就好了(/etc/init.d/network restart)
用nmcli工具查看接口信息,发现有接口但是没有建立连接:
> nmcli device show docker0GENERAL.DEVICE: docker0GENERAL.TYPE: bridgeGENERAL.HWADDR: 02:42:FA:22:9E:A6GENERAL.MTU: 1500GENERAL.STATE: 10 (unmanaged)GENERAL.CONNECTION: --GENERAL.CON-PATH: --IP6.GATEWAY: --
查看下连接信息,发现确实没有连接信息
> nmcli connection showNAME UUID TYPE DEVICEWired connection 1 ******** ethernet ens5
于是手动创建一条就好了
> sudo nmcli connection add type bridge ifname docker0 con-name docker0 ip4 172.17.0.1/16 autoconnect true
再ip addr就能看到ip信息了
