DOCKER默认虚拟网卡IP地址段导致的网络访问异常问题

一、背景

docker服务默认会创建一个docker0网桥,它在内核层连通了其他的物理或虚拟网卡,相当于将所有容器和其主机都放到同一个网络。但是部署在内网中的IP段存在有此网段的IP时,会导致路由转发异常,有服务本来时可以访问的,但是由于装了docker之后导致服务访问不到的问题。

第一步 删除原有配置

sudo service docker stop 
sudo ip link set dev docker0 down      #关闭网卡 
sudo brctl delbr docker0            #删除docker0网卡 
sudo iptables -t nat -F POSTROUTING

 

第二步 创建新的网桥

sudo brctl addbr docker0 #新增网卡 
sudo ip addr add 192.168.200.1/24 dev docker0 
sudo ip link set dev docker0 up

 

第三步 配置Docker的文件

注意: 这里是 增加下面的配置(注:rpm包安装的docker没有这个文件,可以自己手动建一个同名文件就行,路径最好一致,否则还要启动的时候,指定配置文件路径

vi /etc/docker/daemon.json 
{ "bip": "192.168.200.1/24", }

docker的配置现在都是用daemon.json了,不需要去设置DOCKER_OPTS, 所以网络上很多的资料早已过时。

关于daemon.json可以参考这篇文章 https://www.antergone.com/42.html

第四步 重启主机

sudo reboot

你可能感兴趣的:(docker)