【Bug 解决】Error:failed to solve failed to do request:Head “https://registry-1.docker.io/v2/library/xxx

在更换Docker镜像仓库为国内源后,出现ERROR:failedtosolve的问题。该问题可能由于缓存导致,即使删除镜像也无法解决。解决方案是使用dockersystemprune-a--force命令深度清理所有未使用的镜像和缓存,以确保从新的镜像源顺利拉取。
摘要由CSDN通过智能技术生成

问题描述

ERROR: failed to solve failed to do request: Head “https://registry-1.docker.io/v2/library/nginx/manifests/1.19.7”: EOF

出现原因

  • 更换了镜像仓库为国内镜像源;
  • 修改docker engine的配置;

这里贴一下我改后的配置,两处改动,增加了国内镜像源地址registry-mirrorsbuildkit 改为false。配置文件路径为~.docker/daemon.json

{
 "registry-mirrors": [ 
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn/"
  ],
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": false
  }
}

解决办法
使用 docker system 的系列命令来清理镜像缓存。一般情况下,运维清理镜像是通过命令 docker rm i 删除镜像的。但是这条命令不会删除docker build命令产生的缓存文件。

先查看一下docker占用的存储空间情况,执行docker system df 。如图,Build Cache 为本地缓存,大小为15.11MB:
查看docker占用

执行命令docker builder prune,一键清除Build Cache缓存:

docker builder prune

执行命令后,会提示此操作将移除所有悬空镜像缓存,输入y确认,
清楚build cache
再次查看docker占用情况,Build Cache已清空,
在这里插入图片描述

深度清理
如果还是不行🙅,可以尝试使用docker system prune深度清理,此操作会删除所有未使用的容器、网络、镜像(包括悬空的和未引用的)以及卷(可选),务必谨慎操作!!!
docker system prune

对应可使用的参数:

  • -a, --all:删除未被任何容器引用的所有镜像,而不仅仅是悬空镜像
  • –force, -f:跳过确认步骤,直接执行删除;如果不用在执行步骤时需要手动确认,建议不用
  • –volumes, -v:删除所有未被至少一个容器引用的卷
  • –filter:根据提供的条件过滤要删除的内容
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸尘️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值