标签:容器 docker0 宿主机 veth 网桥 服务器 docker
首先需要明确docker的网桥模式,网桥工作在二层(OSI堆栈),是通用网络设备的一种,可以设置IP地址。有了IP地址,Linux便可通过路由表或IP表,在网络层定位网桥,这就相当于有了一个虚拟网卡,即docker0。docker0默认的地址划分:IP(127.17.42.1/16),在启动容器时,docker会在宿主机上创建一对虚拟网卡veth pair设备。veth设备总是成对出现的,它们组成了一个数据的通道,数据从一个设备进入,就会从另一个设备出来。因此,veth设备常用来连接两个网络设备,容器启动时,Docker引擎将veth pair设备的一端放在新创建的容器中,并命名为eth0。另一端放在宿主机中,以veth***这样类似的名字命名,并将这个网络设备加入到docker0网桥中,可以通过brctl show命令查看,从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。
问题:
解决方法: (没brctl命令 自行安装 yum -y install bridge-utils
)
1.删除原有配置
1.systemctl stop docker 2.ip link set dev docker0 down 3.brctl delbr docker0 3.iptables -t nat -F POSTROUTING
2.创建新网桥
1.brctl addbr docker0 2.ip addr add 172.17.10.1/24 dev docker0 3.ip link set dev docker0 up
3.修改docker配置,在/etc/docker/daemon.json中追加bip如下. 注意json的格式,bip前面需要有 ","
4.重启docker
systemctl restart docker
参考:docker容器ping不通宿主机与外网问题排查及解决_Xiao阿的博客-CSDN博客_docker容器ping不通外网
标签:容器,docker0,宿主机,veth,网桥,服务器,docker 来源: https://www.cnblogs.com/namedgx/p/16277227.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。