docker突然不能被外⽹访问的解决⽅案
根据⼤佬们的⽅法,到了原因 sysctl net.ipv4.ip_forward. 腾讯云提⽰修复漏洞,执⾏完他们的脚本, ip转发就被关掉了。后来研究了⼀下,可以通过 docker info 到问题所在。
并且可以查看到docker给出⼀警告
解决⽅法:
sudo vim /f 修改,保存 , 然后 systemctl restart network
或者
sysctl -w net.ipv4.ip_forward=1
但是这样处理可能服务器重启以后就失效了?
还有两个警告,⼀起处理⼀下就好了。
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
补充:docker⽹络问题,在docker容器内⽆法ping通宿主机的外⽹ip,可以ping通其他机器的外⽹ip
问题说明
机器A和机器B 都各⾃有⾃⼰的内⽹IP和外⽹IP,例如:A-IP-内、A-IP-外
B-IP-内、B-IP-外,A机器有⼀个域名
在A机器上安装jenkins的docker容器,启动后,进⼊容器
#docker exec -it jenkins /bin/sh
然后在容器内 ping宿主机A的内⽹IP,可以ping通
#ping A-IP-内(172.16…) //返回可以ping通
#ping A-IP-外(202.106…) //ping不通
# //可以被正确解析为A机的外⽹IP,但ping不通
#ping baidu //可以ping通
另外:
1.在docker容器外的宿主机A机 ping A-IP-外(20
2.106…)是通的。
2.在B机器上安装jenkins容器,在容器内ping A-IP-外(202.106…) 是通的。
2.在B机器上安装jenkins容器,在容器内ping B-IP-外(202.106…) 是不通的。
查各类⽹络问题,删除容器、镜像、重装docker都不起作⽤。
总之:在docker容器内ping宿主机本⾝的公⽹IP怎么也ping不同
我需要在A机的容器内 内被解析为A机器的内⽹地址。
因为容器内可以ping通A机的内⽹地址。
新修改docker-compose⽂件
extra_hosts:
-
" :A"
重建docker容器后,进⼊docker容器
#ping A-IP-外(202.106…) //正确ping通,OK满⾜要求docker进入容器
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论