解决Docker镜像无法拉取问题

Docker镜像无法拉取问题

解决目前Docker Hub国内无法访问方法汇总
近期以来,自2024年5月中旬,著名Docker 容器平台: http://hub.docker.com 不知为何,均无法正常访问了。

这样对国内服务器拉取Docker镜像的影响比较大,不过国内有一些Docker Hub镜像平台,可以用一部分。

下面大概介绍一下。

 

配置镜像

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"http://hammal.staronearth.win/",
"http://hub.staronearth.win/"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

主要是这两个比较好使,建议可以增加一下:

http://hub.staronearth.win
http://hammal.staronearth.win

我配置之后,拉了一下 基本没什么问题。

 内容参考如下:

 

 

汇总国内可用镜像

DaoCloud 镜像站

加速地址:https://docker.m.daocloud.io
支持:Docker Hub、GCR、K8S、GHCR、Quay、NVCR 等
对外免费:是

网易云

加速地址:https://hub-mirror.c.163.com
支持:Docker Hub
对外免费:是

Docker 镜像代理

加速地址:https://dockerproxy.com
支持:Docker Hub、GCR、K8S、GHCR
对外免费:是

百度云

加速地址:https://mirror.baidubce.com
支持:Docker Hub
对外免费:是

南京大学镜像站

加速地址:https://docker.nju.edu.cn
支持:Docker Hub、GCR、GHCR、Quay、NVCR 等
对外免费:是

上海交大镜像站

加速地址:https://docker.mirrors.sjtug.sjtu.edu.cn/
支持:Docker Hub、GCR 等
限制:无

阿里云

加速地址:https://<your_code>.mirror.aliyuncs.com
支持:Docker Hub
限制:需要登录账号获取CODE

科大镜像站

加速地址:https://docker.mirrors.ustc.edu.cn
支持:Docker Hub、GCR、Quay
限制:仅供内部访问

Azure中国镜像

加速地址:https://dockerhub.azk8s.cn
支持:Docker Hub、GCR、Quay
限制:仅供内部访问
失效关闭

七牛云

加速地址:https://reg-mirror.qiniu.com
支持:Docker Hub、GCR、Quay
限制:已关闭

Docker 中国官方镜像

加速地址:https://registry.docker-cn.com
支持:Docker Hub
限制:已关闭

其他方式

对于一些比较热门Docker仓库,国内加速镜像更新还算及时。毕竟大厂们免费提供镜像服务,有挺大的成本。不会全量缓存Docker Hub仓库,以及镜像更新不及时!

最快速及时的方式直接请求 http://hub.docker.com 获取docker仓库。

haochuang—-2024年6月12日19:21:42更新

 

另外,有开源技术同学已经自己搭建了镜像站,有兴趣的话,可以参考:https://mp.weixin.qq.com/s/maonWv7Yj7F-zm8g-n4i8A 自行搭建或者实践。

Github仓库地址:https://github.com/kubesre/docker-registry-mirrors

部署步骤:

# 1. 拉取代码
$ git clone https://github.com/wzshiming/crproxy.git
$ cd crproxy/examples/default

# 2. 修改网关域名
使用vim编辑start.sh文件,将第五行的gateway变量值修改为你自己设定的域名。

# 3. 启动服务
$ ./start.sh

# 4. 拉取镜像示例
如果域名为kubesre.xyz,可以通过添加前缀的方式拉取镜像
$ docker pull kubesre.xyz/k8s.gcr.io/coredns/coredns:v1.8.6

# 5. 设置别名
如果需要使用前缀替换方式拉取镜像,需要执行setup-alias.sh脚本,并为别名申请证书。

# 6. 重启服务
$ ./reload.sh

添加常用镜像仓库别名

设置环境变量:

GETEWAY=kubesre.xyz  # 替换成自己的域名

添加别名:

./setup-alias.sh l5d.${GETEWAY} cr.l5d.io ${GETEWAY}
./setup-alias.sh elastic.${GETEWAY} docker.elastic.co ${GETEWAY}
./setup-alias.sh docker.${GETEWAY} docker.io ${GETEWAY}
./setup-alias.sh gcr.${GETEWAY} gcr.io ${GETEWAY}
./setup-alias.sh ghcr.${GETEWAY} ghcr.io ${GETEWAY}
./setup-alias.sh k8s-gcr.${GETEWAY} k8s.gcr.io ${GETEWAY}
./setup-alias.sh k8s.${GETEWAY} registry.k8s.io ${GETEWAY}
./setup-alias.sh mcr.${GETEWAY} mcr.microsoft.com ${GETEWAY}
./setup-alias.sh nvcr.${GETEWAY} nvcr.io ${GETEWAY}
./setup-alias.sh quay.${GETEWAY} quay.io ${GETEWAY}
./setup-alias.sh jujucharms.${GETEWAY} registry.jujucharms.com ${GETEWAY}
./setup-alias.sh rocks-canonical.${GETEWAY} rocks.canonical.com ${GETEWAY}

 

申请别名证书:

./update-tls.sh gcr.${GETEWAY}
./update-tls.sh ghcr.${GETEWAY}
./update-tls.sh k8s-gcr.${GETEWAY}
./update-tls.sh k8s.${GETEWAY}
./update-tls.sh mcr.${GETEWAY}
./update-tls.sh nvcr.${GETEWAY}
./update-tls.sh quay.${GETEWAY}
./update-tls.sh jujucharms.${GETEWAY}
./update-tls.sh rocks-canonical.${GETEWAY}

 

最后重启服务:

./reload.sh

 

 

.

posted @ 2024-06-13 09:33  念槐聚  阅读(3868)  评论(0编辑  收藏  举报