公益镜像仓库
由于许多公开镜像站已不再可用,我们建立了一个公益镜像仓库供大家下载使用。然而,由于镜像仓库的带宽有限,建议用户自行搭建。以下是相关资源和使用方法:
Github仓库地址:?https://github.com/kubesre/docker-registry-mirrors
如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。
当前 IP 限流 20次/分钟
使用方法
k8s.gcr.io/coredns/coredns => kubesre.xyz/k8s.gcr.io/coredns/coredns
或者通过支持的镜像仓库前缀替换即可使用,例如:
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。
部署步骤:
# 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仅供演示,不保证其稳定性和有效性。
添加常用镜像仓库别名
设置环境变量:
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
总结
以上是搭建个人Docker镜像站的完整流程。如果有任何疑问或建议,欢迎在评论区留言交流。同时,也欢迎大家分享自己使用的镜像站。
最后推荐一个演示的docker镜像站:?https://github.com/kubesre/docker-registry-mirrors
如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。