docker特殊问题处理4——最新最全处理docker镜像拉取报错问题Error response from daemon: Get “https://registry-1.docker.io/v2/

ModelEngine·创作计划征文活动 10w+人浏览 1.4k人参与

在生活或者工作中,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为例演示,目前已正常

### Docker Desktop 镜像失败解决方案 当遇到 `Error response from daemon: Get "https://registry-1.docker.io/v2/"` 误时,通常是因为网络连接问题或者Docker配置不当引起的。以下是详细的解决办法: #### 修改DNS设置 修改系统的DNS设置可以有效改善网络请求超时的情况。编辑 `/etc/resolv.conf` 文件来指定可靠的DNS服务器地址[^3]。 ```bash sudo vim /etc/resolv.conf ``` 在文件中添加如下内容: ```plaintext nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 保存并退出编辑器后重启Docker服务使更改生效。 #### 调整Docker Daemon配置 对于Docker Desktop用户来说,在某些情况下还需要调整daemon.json中的代理设置以确保能够正常访问远程仓库。打开或创建位于 `$HOME/.docker/daemon.json` 的JSON配置文件,并加入以下参数[^1]: ```json { "dns": ["8.8.8.8", "8.8.4.4"], "max-concurrent-downloads": 10, "debug": true } ``` 完成上述操作之后再次启动Docker Desktop应用即可解决问题。 #### 使用国内镜像源加速下载速度 如果仍然存在无法获取到官方库资源的问题,则建议切换至阿里云或其他服务商提供的中国区镜像站点作为默认索引位置。这可以通过同样的方式修改daemon.json实现: ```json { ... "registry-mirrors": [ "https://<your_mirror>.mirror.aliyuncs.com" ] } ``` 请替换 `<your_mirror>` 为实际可用的服务端口前缀字符串。 通过以上措施应该能较好地处理因网络延迟而导致的取失败现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值