DNS污染解决:Docker pull 出现 tcp: lookup index.docker.io: no such host 错误
文章摘要
HeoGPT
本文介绍了如何解决使用docker设备下载镜像时出现DNS污染导致无法下载的问题。通过使用dig命令获取域名的真实IP地址,并手动修改host文件,以绕过DNS污染,从而成功下载镜像。文章提供了具体的操作步骤和示例图片,并对其进行了总结。
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉家里有个专门服务于homeassistant的docker硬件,但是里面的homeassistant好久没有更新了,因为没有软路由也没有魔法所以没办法轻松的docker pull。因为用的是ghcr.io,所以报错。
例如我搜索nginx,报错为:
Error response from daemon: Get "https://index.docker.io/v1/search?q=nginx&n=25": dial tcp: lookup index.docker.io: no such host
解决方法
这种情况大概率是DNS污染,我们可以通过host来绕过DNS污染的问题。
在ssh中输入
1 | dig @114.114.114.114 index.docker.io |
你就可以获得index.docker.io的真实ip地址
随便选择一个复制下来,然后编辑host文件:
1 | vim /etc/hosts |
按下i
进入编辑模式,在一个空行中填写地址 空格 ip地址
例如:
1 | index.docker.io 18.215.138.58 |
然后按一次esc
键,然后输入:wq
来保存文件。
值得一提的是如果你修改失误,可以按esc
后输入q!
即可不保存退出。
然后在进行docker pull即可。
(如果有其他域名报错,解决方法同上,修改dig @114.114.114.114 index.docker.io
中最后面的域名地址)
例如我输入docker pull ghcr.io/home-assistant/qemuarm-64-homeassistant:2023.3.6
下面是成功图片:
总结
在不能使用或者使用魔法困难的docker设备上通过手动修改host可以避免dns污染,让设备成功下载镜像,避免无法使用的问题。
小记:博主用此方法成功更新homeassistant到最新的版本了
- 感谢你赐予我前进的力量
打赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 张洪Heo
评论
生成评论
匿名评论
违规举报
✅ 你无需删除空行,直接评论以获取最佳展示效果