前两天接到同事报障,一台服务器安装docker后无法解析域名,导致应用故障。
故障表现:服务器解析域名正常,服务器没有访问外网权限,配置了内部DNS,docker启动后,应用报错无法解析域名。
分析:服务器网络异常;docker网络异常;iptables配置异常。
验证:确认解析情况,想使用ping查看解析情况,发现docker没有ping命令,apt-get install inetutils-ping,因服务器没有外网导致安装失败。
没有办法使用命令检查解析情况,只有PHP脚本直接报错,提示域名解析失败。
1、进入到容器内部改/etc/hosts,失败。
2、重新创建容器的时候加上–add host,失败。
3、iptables -nL,检查iptables配置情况。
通过1、2可以判断容器网络正常,可以通过3检查防火墙配置。
执行3之后发现
结论:通过以上步骤发现iptables配置存在问题,调整配置后问题解决。