docker换源不生效的原因以及解决方案
docker换源不生效
标题背景
网上一大堆教程告诉你如何换源,怎么执行命令,但发现换源之后,docker pull 仍然拉不下来。
云里雾里不知道什么原因?
历史操作
- 以阿里云镜像加速为例,它提供了个人维度的加速链接,在这里可以看到 容器镜像服务
- 按照上面的操作方式,
vim /etc/docker/daemon.json将个人加速链接配置进去,重启服务 - 发现 docker pull golang:1.22-alpine 依然报错,说明没有走到加速镜像
Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
- 怀疑缓存导致,清理缓存
docker system prune -a - 依然无效后,陷入死锁,在尝试更换了几个源之后没有明显解决。
原因
因为一些历史原因,从24年6月,docker 官方收紧了cn地区的镜像服务,同时,一些自建的镜像加速公有云也并没有完全收录所有镜像开放使用,以上面的阿里云链接为例

它引导用户使用制品中心中的镜像,但那里的镜像种类和版本,与docker官方的几乎不相同,
例如想要获取 golang 镜像,官方的是类似 golang:1.22-alpine ,但制品中心最新的是:
FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/golang:1.19.4-8.6
看到落后了好几个版本。但这个确实能很快速的拉取下来。
最终方案
由上可知,根本原因还是源本身的问题,还是需要找到可靠稳定的国内加速源链接,这里找到一个docker服务状态监控网站,找到镜像加速一栏,将其加入到/etc/docker/daemon.json后,重新尝试发现拉取镜像加速的概率大了很多

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
docker images,info,-d等命令报错的解决方法
最近刚接触Docker,所以在学习的过程中出现了好多的问题,百度上不好找,谷歌的话,楼主不会翻墙。后来通过各方求助和细心研究解决了一些遇到的问题,现在将遇到的问题和解决方法分享给大家,有需要的朋友们可以参考借鉴。2016-11-11
Docker安装node-red、导入节点、部署查看的步骤详解
Node-RED设计使用的场景是IoT,但是作为一个流编排引擎,显然它能做的事情更多,比如使用容器化的方式进行构建、打包、部署等操作也是可行的,这篇文章继续介绍Docker安装node-red、导入节点、部署查看的相关知识,感兴趣的朋友一起看看吧2022-01-01


最新评论