概述
问题描述:
在uat环境中某台机子上安装了docker后,发现公司的办公网络到这条uat的机子就ping不通了,测试环境的网络也ping不通uat了。
相关环境:
本地ip:172.17..,windows系统
测试ip:172.17..,ubuntu16系统
uat的ip:10.3..、10.4..,ubuntu16系统
复盘问题过程:
1.搭建jenkins时,因测试环境不能ssh到uat和生产,故选择在uat搭建jenkins。
2.使用docker搭建jenkins完毕后,并未发现明显异常,但是发现办公网络到uat这台装了docker的网络突然不通了。
3.猜测肯定与docker安装有关,开始检查docker安装所使用的命令,操作命令中未发现任何会对其他硬件和配置有变更的地方,只更新了软件源。
4.此时有些迷茫,不清楚为啥网络就有了故障,笔者对网络不甚了解。
5.碰巧部门群里,服务器的管理人员发了一个场景的docker安装产生的网络异常问题的场景,对号入住后发现与自己症状很是相似。决定照这个去网上搜了解决方案。
6.找到问题原因:docker安装后默认有个docker0网卡,该网卡的ip是:172.17.0.1,该ip正好与公司本部的IP地址有冲突,然后就导致了本部的ip与docker所在网络的通信出现了问题。ping与telnet都会不通了。
7.问题产生的原因一直都知道方向:docker产生的网络问题。不过直到服务器管理人员发出来才真正意识到问题的所在。
解决办法:
1.删除现在的网卡
sudo systemctl stop docker # 关闭docker
sudo ip link set dev docker0 down # 关闭docker0网卡
sudo brctl delbr docker0 # 删除docker0网卡
sudo iptables -t nat -F POSTROUTING # 清空路由后的地址转换规则
执行“brctl delbr”该命令时,可能会提示命令未找到,请参照如下:
sudo yum install bridge-utils # Centos系统网桥安装
sudo apt-get install bridge-utils # Ubuntu系统网桥安装
2.重新创建docker0网卡
sudo brctl addbr docker0 # 创建网卡
sudo ip addr add 10.250.8.8/24 dev docker0 # 为docker0网卡声明新的ip
sudo ip link set dev docker0 up # 启动docker0网卡
3.修改docker配置文件
daemon.json可能不存在,该文件并不是必须的。所以若是不存在,则需要我们自己创建。
sudo vim /etc/docker/daemon.json # 编辑docker配置文件
打开该文件后,在后面追加刚刚第二步 配置的ip即可,如下所示
{
"bip": "10.250.8.8/24"
}
4.重启docker即可
sudo systemctl daemon-reload # 重载docker的配置文件
sudo systemctl restart docker # 重启docker服务
最后
以上就是爱听歌冷风为你收集整理的docker安装后导致的网络问题的全部内容,希望文章能够帮你解决docker安装后导致的网络问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复