本文章记录docker容器dns相关故障的排查与修复
排查
检查URL解析
进入容器使用curl
确认是否可以正常解析域名
docker exec -it freenom /bin/bash
在出现的命令行执行
curl <URL>
比如curl baidu.com
,查看其输出
我的环境中直接是提示bad address的错误
查看DNS配置
依旧在容器的命令行中
cat /etc/resolv.conf
查看配置文件的nameserver都用的啥
可以改为你确认可用的DNS服务器
随后再次运行查看是否正常
修复
方式一
在docker run
命令中加入--dns <DNS_SERVER>
参数,手动指定此容器使用的DNS
我采用了这种
方式二
信息来自互联网,未实际确认 注:改完应该需要 重启docker服务
对docker的配置文件进行修改
vim /etc/docker/daemon.json
在其中加入DNS配置项
"dns" : [
"8.8.8.8",
"119.29.29.29"
]