
那这个问题就成了: 使用默认的docker0网桥,容器内无法ping通docker0网关,进而无法访问宿主机。

呀呀呀呀, 八成是公司机器的配置问题 ~。。~
追问公司运维同学,发现:

Chain INPUT (policy DROP)
以上INPUT链的缺省策略是丢弃:从容器内访问宿主机的INPUT链规则并不匹配其中列出的任意一条,将被丢弃,所以我们从容器ping docker0网关会卡住收不到结果。
除非满足列出的INPUT链规则,否则缺省的策略就是丢弃。
后面还有转发和OUTPUT链缺省是 接受
这个策略的初衷是 服务器安全(尼玛, 导致容器访问宿主机的基础能力都没有了!!!)。
运维方案:
① 使用
sudo service iptables stop 关闭iptables② 把要使用的网桥网段加入 INPUT链
sudo iptables -I INPUT -s 172.17.0.0/16 -j ACCEPT
【接受docker0子网段172.17.0.0/16 INPUT】 加入规则, 传送门
OK, That‘s All, 以后若有朋友在公司网络遇到 默认网桥容器内无法ping通网桥网关,进而无法访问宿主机,可参考本文排障。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。
您可能感兴趣的文章:详解docker搭建redis集群的环境搭建docker创建redis镜像的方法Ubuntu 搭建基于Docker的LNMP+Redis的开发环境(图文)Docker安装官方Redis镜像并启用密码认证Docker安装常用组件(mysql,redis)的方法Docker下redis的主从配置教程详解基于docker搭建redis-sentinel集群的方法示例linux环境部署及docker安装redis的方法










