如何排查Docker运行时出现的Error response from daemon报错?
报错翻译
守护进程返回错误:请求
https://registry-1.docker.io/v2/失败:TCP 拨号异常:在192.168.65.1:53解析registry-1.docker.io域名时,DNS 服务器响应异常
问题定位
该报错核心是Docker daemon无法通过当前配置的DNS服务器解析Docker官方镜像仓库域名,常见触发原因如下:
- 当前使用的DNS服务器(此处为192.168.65.1,通常是Docker Desktop内置网关或本地局域网网关)运行异常,无法正常返回解析结果
- 网络环境存在限制,无法正常访问公共DNS节点或Docker官方仓库的解析服务
- Docker daemon本身的DNS配置错误
解决方法
1. 验证本地解析能力
先在宿主机执行命令测试域名解析是否正常:nslookup registry-1.docker.io
如果返回解析失败,说明是宿主机本身的DNS配置问题,优先修改宿主机的DNS服务器为公共DNS(如8.8.8.8、114.114.114.114)即可。
如果宿主机解析正常,说明问题出在Docker daemon的DNS配置,执行下一步操作。
2. 修改Docker DNS配置
Linux 环境
编辑Docker daemon配置文件 /etc/docker/daemon.json(文件不存在则直接新建),添加DNS配置项:
{ "dns": ["8.8.8.8", "114.114.114.114"] }
保存后执行命令重启Docker服务生效:systemctl restart docker
Windows/Mac Docker Desktop 环境
打开Docker Desktop设置页面 -> 资源 -> 网络,手动将DNS服务器修改为8.8.8.8、114.114.114.114,保存后重启Docker Desktop即可生效。
3. 应急替代方案
如果修改DNS后仍无法访问,可配置国内公开的Docker镜像加速源,替换默认的官方镜像仓库地址,绕过官方仓库的解析限制。
内容的提问来源于stack exchange,提问作者Anup B Pote
相关产品推荐
相关产品推荐

