快速搭建自己的多平台镜像站
- 世界杯没有中国
- 2025-10-30 01:06:09
- 8957
公益镜像仓库由于许多公开镜像站已不再可用,我们建立了一个公益镜像仓库供大家下载使用。然而,由于镜像仓库的带宽有限,建议用户自行搭建。以下是相关资源和使用方法:
Github仓库地址:?https://github.com/kubesre/docker-registry-mirrors
如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。
当前 IP 限流 20次/分钟使用方法代码语言:javascript代码运行次数:0运行复制k8s.gcr.io/coredns/coredns => kubesre.xyz/k8s.gcr.io/coredns/coredns
或者通过支持的镜像仓库前缀替换即可使用,例如:
代码语言:javascript代码运行次数:0运行复制k8s.gcr.io/coredns/coredns => k8s-gcr.kubesre.xyz/coredns/coredns
支持前缀替换的 Registry以下是前缀替换的 Registry 规则,如有需求请提 Issue:
Github仓库地址:?https://github.com/kubesre/docker-registry-mirrors
如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。
替换规则表原始仓库地址
替换为
cr.l5d.io
l5d.kubesre.xyz
docker.elastic.co
elastic.kubesre.xyz
docker.io
docker.kubesre.xyz
gcr.io
gcr.kubesre.xyz
ghcr.io
ghcr.kubesre.xyz
k8s.gcr.io
k8s-gcr.kubesre.xyz
registry.k8s.io
k8s.kubesre.xyz
mcr.microsoft.com
mcr.kubesre.xyz
nvcr.io
nvcr.kubesre.xyz
quay.io
quay.kubesre.xyz
registry.jujucharms.com
jujucharms.kubesre.xyz
详细说明请参考:?https://github.com/kubesre/docker-registry-mirrors
背景介绍随着一些知名公开镜像站的关闭,国内用户在使用Docker时面临更多困难。特别是对于企业而言,搭建一个稳定可靠的自用镜像站显得尤为重要。本文将介绍一种工具——crproxy,它是一个Docker镜像代理服务。通过部署此服务,我们无需手动同步镜像到私有仓库,只需将代理服务部署在网络畅通的服务器上,即可通过该服务器拉取各大镜像仓库的镜像。
crproxy支持的镜像仓库crproxy实际上支持任何镜像仓库。以下是一些常见的仓库列表:
镜像仓库地址
归属
cr.l5d.io
Lyft
docker.elastic.co
Elastic
docker.io
Docker, Inc.
gcr.io
Google Cloud
ghcr.io
GitHub
k8s.gcr.io
Kubernetes
registry.k8s.io
Kubernetes
mcr.microsoft.com
Microsoft Container Registry
nvcr.io
NVIDIA
quay.io
Quay.io (CoreOS)
registry.jujucharms.com
Juju Charms
部署指南部署条件:
一台网络畅通的服务器准备一个域名(无需备案)并做好 DNS 解析:添加两条解析记录 @ 记录 和 * 记录到准备好的服务器的 IP建议选择xyz结尾的域名,首年最低7元。如果使用二级域名,例如cr.kubesre.xyz,可将cr和*.cr解析到服务器IP。
部署步骤:
代码语言:javascript代码运行次数:0运行复制# 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
注意事项当前的部署形式适用于小规模使用场景。对于大规模使用,项目中已有相关代码,但尚未有文档描述。文章中提到的仓库地址kubesre.xyz仅供演示,不保证其稳定性和有效性。添加常用镜像仓库别名设置环境变量:
代码语言:javascript代码运行次数:0运行复制GETEWAY=kubesre.xyz # 替换成自己的域名
添加别名:
代码语言:javascript代码运行次数:0运行复制./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}
申请别名证书:
代码语言:javascript代码运行次数:0运行复制./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}
最后重启服务:
代码语言:javascript代码运行次数:0运行复制./reload.sh
总结以上是搭建个人Docker镜像站的完整流程。如果有任何疑问或建议,欢迎在评论区留言交流。同时,也欢迎大家分享自己使用的镜像站。
最后推荐一个演示的docker镜像站:?https://github.com/kubesre/docker-registry-mirrors
如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。