无法拉取 gcr.io 镜像?用魔法来打败魔法
目前常用的 Docker Registry 公开服务有:
docker.io
:Docker Hub 官方镜像仓库,也是 Docker 默认的仓库gcr.io
、k8s.gcr.io
:谷歌镜像仓库quay.io
:Red Hat 镜像仓库ghcr.io
:GitHub 镜像仓库
当使用 docker pull 仓库地址/用户名/仓库名:标签
时,会前往对应的仓库地址拉取镜像,标签无声明时默认为 latest
, 仓库地址无声明时默认为 docker.io
。
众所周知的原因,在国内访问这些服务异常的慢,甚至 gcr.io
和 quay.io
根本无法访问。
解决方案:镜像加速器
针对 Docker Hub
,Docker 官方和国内各大云服务商均提供了 Docker 镜像加速服务。
你只需要简单配置一下(以 Linux 为例):
sudo mkdir -p /etc/docker |
便可以通过访问国内镜像加速器来加速 Docker Hub
的镜像下载。
!> 不过这种办法也只能针对 docker.io
,其它的仓库地址并没有真正实际可用的加速器(至少我目前没找到)。
解决方案:用魔法打败魔法
既然无法治本,那治治标还是可以的吧。
若我们使用一台魔法机器从 gcr.io
或 quay.io
等仓库先把我们无法下载的镜像拉取下来,然后重新上传到 docker.io
,是不是就可以使用 Docker Hub
的镜像加速器来下载了。
最后
本篇的实现已放在 GitHub :**https://github.com/togettoyou/hub-mirror
**
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 X.Wang's Blog!