文章声明:此文基于木子实操撰写
生产环境:Docker 19.03.8,Kubernetes v1.18.2
问题关键字:Docker镜像拉取异常
写在最前面
自从Docker诞生以来,Docker镜像的拉取一直是一个老大难的问题。在前几年Docker在国内还没有普及的时候,基本上国内没有镜像源,部署一套Kubernetes因为镜像问题就吓退了一批同学。随着国内Docker应用的普及,国内的Docker镜像源开始慢慢多起来了,但稳定性也是一个让人头疼的问题,这不使用了多年的gcr.azk8s.cn
、quay.azk8s.cn
、dockerhub.azk8s.cn
最近也陨落了403。今天木子梳理了一下当前国内还可用源,分享给各位同学,希望对各位同学有所帮助。
镜像下载异常处理
引发木子写这篇文章的主要原因是因为有同事反馈说无法获取kubernetes资源使用信息,为此木子查看了tiller deploy,发现报错ImagePullBackOff
,于是查看对应describe
信息,发现是拉取gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.2
失败,于是木子试着手动拉取了一下,发现拉取不到对应镜像,从此gcr.azk8s.cn陨落。中科大(docker.mirrors.ustc.edu.cn)就不用说了,不管是哪种镜像都很不稳定,偶尔用用还可以,长期不建议使用。目前来看阿里的镜像源还算是比较稳定的。对于这个问题的解决,也希望能够让更多的同学了解怎样快速切换镜像源。
1 | #查看Pod事件日志 |
通过阿里云代理基本问题不大,但如果万一用不了,我们还可以在国外的一台服务器上下载对应镜像,然后重新tag
,再推送到国内仓库(比如:aliyun、qcloud、huaweicloud等),因为这个是公共镜像,所以这个仓库我们可以设置为公共,这样就不用每次登录去拉取镜像了。
1 | [root@k8sm02 ~]# docker tag registry.cn-shenzhen.aliyuncs.com/public/tiller:v2.14.2 registry.cn-shenzhen.aliyuncs.com/oubayun/public/tiller:v2.14.2 |
通过以上操作,我们就完成了Docker镜像换源的操作。
Docker镜像加速器列表
以上算是解决了镜像下载问题,为了能够更方便自己和各位同学使用,木子将在这里维护一套镜像下载地址,如存在已挂的情况,请各位同学及时通知木子更新(可在评论区留言)。
镜像加速器厂商 | 镜像加速器地址 | 加速项目 | 备注 |
---|---|---|---|
中科大 | {docker,gcr,quay}.mirrors.ustc.edu.cn | Docker.io、gcr.io、quay.io | 不稳定 |
阿里云 | registry.aliyuncs.com/google_containers | Docker.io、gcr.io | 稳定,Docker hub需要在阿里云后台分配 |
七牛云 | {reg,quay-mirror}.qiniu.com | Docker.io、quay.io | 稳定 |
网易云 | hub-mirror.c.163.com | Docker.io | 稳定 |
腾讯云 | mirror.ccs.tencentyun.com | Docker.io | 稳定 |
这此镜像仓库也有一些坑的地方,比如:中科大的就不太稳定。使用阿里云域名解析(223.6.6.6或223.5.5.5等),使用腾讯云的仓库地址,就会出现域名解析的问题。国内还有很多Docker Hub加速器,但都需要注册才能够使用,所以木子这里就不列出来了。
Docker Hub镜像
1 | #源地址 |
gcr.io镜像源
1 | #源地址 |
quay.io镜像
1 | #源地址 |
写在最后
这个Docker镜像加速列表,木子将长期维护。个人可能没有办法及时发现和更新,如果各位同学发现有新的可用仓库地址以及木子没有收录到的,或者哪个仓库地址不可用了,可以在评论区留言,方便木子及时维护更新。