一、起因
为了进行自动化测试,通过docker打架了一套selenium grid的容器,selenium node在最近的几次执行过程中均无法访问到内部域名对应的服务。
二、排查过程
开始以为是DNS服务器出现了问题,在docker的宿主机执行了
ping 域名
curl 域名
dig 域名
均返回了正确的结果,说明DNS解析是正常的,想要访问selenium hub对外提供的4444端口看下节点注册情况,在浏览器输入之后一直转圈,无法访问到,在宿主机上面
CURL http://xxxxxx:4444/ui/index.html
返回了预期的结果,检查了防火墙,selinux,iptables放行规则都是通过的,那就可能是网络问题了。
三、解决办法
停止docker后通过ifconfig启停一下docker对应的网卡,再次启动docker,selenium grid内正常访问域名对应的服务。
systemctl stop docker
ifconfig docker0(docker对应的网卡名) down
ifconfig docker0 up
systemctl restart network