记录一次与docker网络异常的斗争

起因是用docker编译buildroot时突然发现连接不上网络,也ping不通主机,尝试重启docker和ubuntu都无效,随上网找解决办法,看到

先停掉宿主机上运行的docker容器,然后执行以下命令
在宿主机执行:
pkill docker
iptables -t nat -F
ifconfig docker0 down
systemctl restart docker.service
重启docker服务

尝试了一番,没用,并且执行iptables -t nat -F时把宿主机网络信息清除掉了,差点出更大的问题。。
继续找。。。

解决办法:重建docker0网络恢复
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
systemctl restart docker

执行完也没用,并且更大的问题出来了。。
docker start时会提示
Error response from daemon: failed to create endpoint frosty_poitras on network bridge: adding interface veth7270f0c to bridge docker0 failed: could not find bridge docker0: route ip+net: no such network interface
解决着解决这问题更多了。。
最后发现启动前要先执行
brctl addbr docker0
才能起docker。
这个问题解决了,继续找上一个问题。。
又发现ifconfig时,docker没有start前存在docker0 网卡,启动后只存在veth7419f34这个docker创建的虚拟网卡。。以前是共存的来着/吐血
百度找不到解决办法,先跳过吧。。
然后有人提到docker info能查看启动异常信息

执行 docker info 时出现警告
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
解决办法:
vi /etc/sysctl.conf
在文件里添加下面两行代码:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
然后 ESC 退出后 :wq 保存,执行下面代码:
sysctl -p
再试一次 docker info 问题应该解决了

执行docker info,果然有如下提示,心中大喜,以为就要解决了,但是进度条告诉我并没那么简单。。
照着执行完,然并卵。。并且docker stop后start以后,board info 还是一样的提示。。
以为是没生效,又写入rc.local,重启重启重启。。

centos机器 docker安装完成后,输入docker info命令,报如下警告信息解决方法:
1)警告信息如下:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
2)解决方法:修改系统文件是的机器bridge模式开启
设置机器开机启动的时候执行下面两条命令
编辑vim /etc/rc.d/rc.local添加下面两条命令
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
centos7需要增加执行权限:
chmod +x /etc/rc,d/rc.local
3)重启系统
————————————————
版权声明:本文为CSDN博主「沧_海_笑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gyy823/article/details/50168217

docker stop后执行了下cat /proc/sys/net/bridge/bridge-nf-call-iptables
大大的0输出了出来。。。。。。。。。。。。。。
怪不得boardinfo会继续提示。
反正这个方法也没用,跳过继续找别的方法吧。
找来找去还真没了,天要亡我?
怎么能轻言放弃!
三点啦!饮茶先!
正好坐着思考下,总结下经验。
想了想不管是brctl,not find bridge,或者是bridge-nf-call-iptables is disabled,都是和bridge有关,而且各种迹象都表明,在虚拟机创建bridge时,有其他东西和docker冲突了。
以前也遇到过这种问题,当时随便搜了个帖子就解决了,会不会是当时什么操作造成的影响呢?
随翻出浏览记录(果然没事不要开无痕)

重建docker网络即可。具体步骤如下:
安装brctl
apt-get install bridge-utils
yum install bridge-utils
停止docker服务
systemctl stop docker
重建 docker 网络
ifconfig docker0 down
brctl delbr docker0
重启docker服务
systemctl start docker

看来当时安装了bridge-utils工具,猜测罪魁祸首就是他
直接apt remove bridge-utils送走

大功告成,什么问题都没有了

没想到第二天宿主机的网炸了,网络设置直接消失了

折腾了一天,最后这个帖子给了解决办法

如未解决请继续往下看
1.虚拟机使用Ubuntu 18.04时,网络图标总消失,查询各种方法后,自己总结下以备己用:
sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start
sudo gedit /etc/NetworkManager/NetworkManager.conf
把false改成true
sudo service network-manager restart
————————————————
版权声明:本文为CSDN博主「Charlie.py」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43396453/article/details/85232706

现在想想也许不是bridge-utils的问题,先装回来看看吧

posted @ 2021-08-23 17:34  USTHzhanglu  阅读(1053)  评论(0编辑  收藏  举报