跳到主要内容

Docker镜像无法拉取问题的解决方案

阅读需 3 分钟

自2024年5月底6月初,由于某些原因,突然间在国内就无法正常访问和拉取Docker镜像源,鉴于笔者目前从事云原生ModelOps工作,几乎每天都要和K8S、Docker打交道,镜像无法拉取一直让人很苦恼和无奈,所以在日常工作和探索中,总结汇总了如下可以拉去的官方镜像源的解决方案,由于之前都是零零散散的记录在不同的笔记中,一直想找个时间系统的整理汇总一下,拖了很久,终于在这个周末挤出了一些时间进行了整理汇总,详见下文四个方案,在此,这些方案可能会随着时间的推移无法使用,若是如此请见谅!

方案一:在线下载

  • 渡渡鸟的容器镜像小站:本站作者宣传100%同步官方镜像,目前支持同步镜像源:gcr.io ghcr.io quay.io k8s.gcr.io docker.io registry.k8s.io docker.elastic.co skywalking.docker.scarf.sh 单个镜像大小限制2G,截止目前,全站目前镜像索引数量7516,同步5213GB;

方案二:在拉取镜像加上下列前缀

源站替换为
cr.l5d.iol5d.kubesre.xyz
docker.elastic.coelastic.kubesre.xyz
docker.iodhub.kubesre.xyz
gcr.iogcr.kubesre.xyz
ghcr.ioghcr.kubesre.xyz
k8s.gcr.iok8s-gcr.kubesre.xyz
registry.k8s.iok8s.kubesre.xyz
mcr.microsoft.commcr.kubesre.xyz
nvcr.ionvcr.kubesre.xyz
quay.ioquay.kubesre.xyz
registry.jujucharms.comjujucharms.kubesre.xy
# 示例
docker pull k8s.kubesre.xyz/ingress-nginx/opentelemetry-1.25.3-v20240813-b93310d

img

方案三:通过配置Docker加速源

在完成安装Docker后,创建或修改/etc/docker/daemon.json

  • 添加加速源
    • 关于加速源可参见文末 【拓展:最新稳定加速元列表】
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://hub.rat.dev",
"https://docker.1panel.live"
]
}
EOF
  • 重启Docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker
  • 使用docker info 检查是否配置生效,如何输出下列内容则说明配置成功
Registry Mirrors:
[...]
https://docker.1panel.live
提示

如果当前的docker服务不方便重启,可以使用如下方式进行镜像拉取

# docker pull <加速源>/library/mysql:5.7
docker pull docker.1panel.live/library/mysql:5.7

方案四: 通过开源项目的 issue

此方案适用于可以访问Docker镜像仓库,但无法访问其他镜像仓库(registry.k8s.io、gcr.io 等)。

使用说明:

  1. 在该项目中创建一个新issue,会出现一个模板,将模板内容修改为需要拉去的镜像,提交issue,就会触发github的CI,就会进行拉去拉取镜像,并推送到公开Docker仓库。
{
"hub-mirror": [
"你需要转换的镜像",
"你需要转换的镜像",
"每次最多 11 个",
"改这个 json 就可以了",
"别乱改内容",
"标题随意,保持阵型是最好的",
"hub-mirror 标签是必选的",
"......"
]
}

####################PS改成下面这个################
{
"hub-mirror": [
"registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3"
]
}
####################PS改成下面这个################
  1. 然后从docker镜像仓库拉去所需要的镜像 img

拓展:最新稳定加速源列表

提供者镜像加速地址说明加速类型
耗子面板https://hub.rat.dev无限制Docker Hub
rainbondhttps://docker.rainbond.cc无限制Docker Hub
1panelhttps://docker.1panel.live无限制Docker Hub
毫秒镜像https://docker.1ms.run大部分镜像都能拉Docker Hub
DaoCloudhttps://docker.m.daocloud.io白名单和限流Docker Hub
阿里云https://xxx.mirror.aliyuncs.com需登录分配镜像太旧
南京大学https://ghcr.nju.edu.cn暂无限制ghcr.io
Docker Layer ICUhttps://docker.cloudlayer.icu暂无限制Docker Hub
Loading Comments...