docker容器内访问外部mysql_Docker 一段时间后无法访问容器外网络

问题描述:多个docker通过overlay网络连接,docker容器需要访问外部的Redis和MySQL服务。docker服务刚启动时各个服务之间是可以正常访问,但是再过一段时间后,docker容器之间无法访问,容器内服务也无法访问Redis和MySQL,进入容器也不能ping通,重启之后解决。

前提条件:服务器防火墙已经关闭

参考:

Docker容器端口映射后突然无法连接的排查过程_安科网​www.ancii.com
d3683c8c3bfbe792b42004cbad0742e5.png

问题解决:

echo 

问题分析:

文章里说,systemctl restart network.service会修改ip_forward的值导致,一开始docker启动时 ip_forward的值是1,这个可以通过 sysctl net.ipv4.ip_forward 这条命令验证,但是在restart network后,这个值就变成了0,实验后符合。这里想起来了,之前这台机器只有docker是没有问题的,后面装了Hadoop和spark后这个问题出现了。

ip转发原理:

参考:

CSDN-专业IT技术社区-登录​blog.csdn.net

出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值