在生活或者工作中,docker的使用确实带来了很大的便利性,尤其对于特殊环境的模拟和调试场景简直是如虎添翼。当然对于非专业人士来说,docker对于某一应用或者服务的简单便捷高效快速的使用确实是一目了然,普通用户完全无须关注复杂的配置,这也是她能长盛不衰,越用越火的优势所在。
但是对于国内的用户来说,docker镜像的下载却是棘手的问题之一。如果你是墙外人员那这篇文章并不适用于你,而国内用户尤其是经常使用的人来说,在拉取镜像的时候会经常出现【Error response from daemon: Get "https://registry-1.docker.io/v2/】无法访问的问题,本篇文章就是基于此来详细解决出现这类问题,该如何让去排查解决。
本文的案例是以Ubuntu 22.04.5 LTS版本,docker版本为28.5.2进行排查处理,理论上相关的linux子系统分支都可以参照使用,下面的图片展示了系统版本和问题详情。


一.检查dns服务能否被正常执行和解析
如果更详细的配置使用netplan或者linux配置静态ip,请参考如下文章:
https://www.cnblogs.com/python-learn/p/19084645
1.先检查“/etc/netplan/”下是否有.yml格式的配置问题。
注意:
如果没有,可新建如下01-netcfg.yaml文件,具体如下图所示。

2.利用vim命令编辑该文件,其中的ip和网关需要修改成自己的。
注意:
如果不会使用vim命令,也可以在本地windows电脑上编辑好文件后,再通过ftp直接上传到该目录下,可直接复制如下内容,更换相关配信信息,需要注意格式问题。
###设置静态ip和dns地址
network:
ethernets:
eth0: # 网卡名称
addresses: [192.168.2.20/24] #子网IP地址
dhcp4: false
optional: true
routes:
- to: default
via: 192.168.2.1 # 网关地址
nameservers:
addresses: [114.114.114.114,1.1.1.1] # DNS地址
version: 2
renderer: networkd
3.确认网络配置文件没有任何问题后,执行相关命令,并检测配置的dns服务是否能正常访问和使用。
####网络配置生效
netplan apply
####检测dns服务正常
dig @114.114.114.114 registry-1.docker.io
注意:
a.执行完netplan apply会有警告信息,权限过大,可无需关心。
b.为什么很多文章dns都配置的是GG-8.8.8.8或者8.8.8.4还是不行,问题就在这里,因为通过dig命令根本就无法正常解析,或者简单说就是网络还没连通。

二.检查docker镜像源文件,并通过命令执行是否可以连通对应的镜像源地址
1.按第一步的操作,在/etc/docker查看"daemon.json"文件,如果不存在继续执行创建操作。

2.daemon.json镜像源文件详细内容如下,确认格式完全正确后保存即可
{
"registry-mirrors": [
"https://mkoo7bej.mirror.aliyuncs.com",
"https://mirror.aliyuncs.com",
"https://hub-mirror.c.163.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn"
]
}
3.利用ping命令检测哪些地址可以连通,然后执行相关命令并重启docker即可正常拉取镜像
注意:
a.如果“daemon.json”文件配置错误,执行重启docker命令会报错“Job for docker.service failed because the control process exited with error code”
b.使用ping命令检测后,可保留连通性正常的地址,其余均可删除。
###使镜像源地址生效
sudo systemctl daemon-reload
###重启docker(可直接使用该命令即可)
sudo systemctl restart docker

三.验证docker拉取,我这里以docker-compose为例演示,目前已正常


11万+

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



