Docker 无法拉去镜像解决
我用的Linux 虚拟机版本是 CentOS 7。
今天在使用 Docker 的时候,无法拉取镜像,报错如下:
Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:58656->[::1]:53: read: connection refused

上百度搜了一下,发现有可能是虚拟机网络连接的问题,那么 ping 一下外网试试,因为docker 拉取镜像也是要和外网连接,到外网的镜像站拉取镜像。
这里用 ping 一下百度网站,结果如下:
ping www.baidu.com

说明确实是虚拟机网络存在问题,又百度搜了一下,发现是 DNS 服务器错误,那么只需要配置一下 DNS 服务器即可解决问题。
解决步骤是:
- 进入到网络配置的文件夹
网络配置的文件夹地址是 根文件夹下的 etc 文件夹下的 sysconfig 文件下的 network-scripts 文件夹
则 cd 到此文件夹中
cd /etc/sysconfig/network-scripts

- 打开网络配置文件
可以 ls 此文件夹下的文件

可以看到配置文件就是 ifcfg-ens33 这个文件,vi 打开此文件夹
vi ifcfg-ens33

文件打开后效果如下:

注:以上两步也可以一步到位使用命令
vi /etc/sysconfig/network-scripts/ifcfg-ens33

- 设置 DNS 服务器地址
点击 i 进入编辑模式,添加上这一行:
DNS=8.8.8.8

按 esc 退出编辑模式,并按冒号 “:” 进入底行模式,输入 wq 保存并退出

按 enter 确认,回到主屏幕

- 这次直接一步到位,vi 进入 /etc/resolv.conf 文件,
vi /etc/resolv.conf
在里面添加如下:
nameserver 8.8.8.8

保存并关闭此文件,进入主界面
- 输入指令,重启网络服务
指令为:
systemctl restart network

- 这次再尝试ping 百度网址
ping www.baidu.com

这就意味着网络是通的,没有其他异常的情况下可以用 docker pull 命令拉取elasticsearch 镜像了。
命令如下:
docker pull elasticsearch
但结果如下:

出现这种错误是因为我们在利用 docker pull 命令拉取elasticsearch 镜像时,由于我们没有规定版本号,所以所以 docker 会默认拉取最新的版本,也就是 “latest”。但是docker 由于某些原因没有发现最新版本,因此,我们在docker pull 时,需要为其规定版本号。
如,我拉取 8.4.1 版本的镜像,这个是最新版本,但我们需加上版本号:
docker pull elasticsearch:8.4.1
回车,等待拉取完成


拉取 elasticsearch 镜像完成!

在CentOS 7的虚拟机中,遇到Docker无法拉取镜像的问题,报错为DNS解析失败。通过检查网络连接,发现是DNS服务器配置错误。通过修改网络配置文件ifcfg-ens33,设置DNS为8.8.8.8,并重启网络服务。之后,指定版本号拉取elasticsearch镜像,成功解决了问题。
3万+

被折叠的 条评论
为什么被折叠?



