转自https://blog.csdn.net/deng8623048/article/details/118995303
今天在linux系统下学习Docker的时候出现了镜像下载报错的问题提示请求超时,查阅各种论坛没解决最终在IT界苏大强大牛的文章的帮助下才弄好,接下来给三种解决方案。第一种我用的是可以的,其他两个没用。做个笔记!!
主要原因
- 解析ip不可用
- 是因为dns域名没有解析的原因;
第一种原因解决方案(解析ip不可用)
第一种原因是因为docker解析的IP失效或者不能正常访问所引起的请求超时这个时候我们就想要去配置docker的解析ip
我们想要下载一个big命令如下:
yum install bind-utils
下载成功后使用查询可用big查询可用的ip:
dig @114.114.114.114 registry-1.docker.io
结果这个时候就会出现很多的ip:
[图片上传失败...(image-e0402e-1654069568608)]
从中我们选择一个ip就可以了,这里我们选择34.199.77.19(随机选择都可以用的)
然后在 /etc/hosts
目录下去修改docker.io的域名解析到其它可用IP
命令如下:
vi /etc/host
把我们刚刚的ip加进去:
34.199.77.19 registry-1.docker.io
[图片上传失败...(image-438e72-1654069568608)]
保存后重启下docker命令:
systemctl restart docker
再pull下载就ok了
第二种解决方案因为dns域名没有解析的原因
我出的问题就属于第二种问题,因为镜像是学习素材copy的所以没有考虑dns配置废话不多说来说说解决方案
docker pull 镜像时报错:
Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/1.14-alpine: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fnginx%3Apull&service=registry.docker.io: dial tcp: lookup auth.docker.io: no such host
这是一个请求头超时异常,说白了就是你的docker请求不到外网无法去docker官网下载镜像!!!
记住报错的结尾提示的是 no such host 这个异常是你的dns域名没有解析的原因所以我们对症下药
通过命令去我们linux的dns配置 文件
vi /etc/resolv.conf
新增谷歌的dns域名解析地址
nameserver 8.8.4.4
再配置一个默认解析地址(如果有请忽略)
[图片上传失败...(image-b4195e-1654069568608)]
nameserver localdomain
保存后重启下docker命令:
systemctl restart docker
</article>