Centos解决java.net.UnknownHostException错误
同事开发的新项目中有调用其他网站的接口,方式是通过域名访问的,本地是没有问题的,部署到服务器上报了UnknownHostException这个错(我们是用的docker容器部署),网上搜了说是ping不通域名导致的,后来ping通域名后还是不行,尝试将容器内的host文件修改后,错误解决。这里以centos7.6版本为例。
错误一:系统ping域名失败(可以ping通ip,但域名不可以)
这是不能直接访问的错误,可以直接ping外网ip的
解决办法
修改DNS文件
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
修改后可以ping通域名,包括外网ip
错误二:容器内ping域名失败
无法ping通域名,导致服务依旧报错
解决办法
1、进入容器
docker exec -it xxx bash
2、修改host文件
vi /etc/hosts
3、增加映射ip和域名
47.102.162.xx www.xx.cn
4、保存并重启服务
修改后可以ping通,重启容器即可解决报错
以上解决办法在docker容器部署的服务中适用,其他部署方式可以参考此文章,希望能解决问题。