前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速搭建自己的多平台镜像站

快速搭建自己的多平台镜像站

作者头像
用户1107783
发布2024-06-17 14:32:16
1790
发布2024-06-17 14:32:16
举报

公益镜像仓库

由于许多公开镜像站已不再可用,我们建立了一个公益镜像仓库供大家下载使用。然而,由于镜像仓库的带宽有限,建议用户自行搭建。以下是相关资源和使用方法:

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

如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。

当前 IP 限流 20次/分钟

使用方法
代码语言:javascript
复制
k8s.gcr.io/coredns/coredns => kubesre.xyz/k8s.gcr.io/coredns/coredns

或者通过支持的镜像仓库前缀替换即可使用,例如:

代码语言:javascript
复制
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
复制
# 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
复制
GETEWAY=kubesre.xyz  # 替换成自己的域名

添加别名:

代码语言:javascript
复制
./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
复制
./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
复制
./reload.sh

总结

以上是搭建个人Docker镜像站的完整流程。如果有任何疑问或建议,欢迎在评论区留言交流。同时,也欢迎大家分享自己使用的镜像站。

最后推荐一个演示的docker镜像站:?https://github.com/kubesre/docker-registry-mirrors

如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生运维圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 公益镜像仓库
    • 当前 IP 限流 20次/分钟
      • 使用方法
  • 支持前缀替换的 Registry
    • 替换规则表
    • 背景介绍
      • crproxy支持的镜像仓库
        • 部署指南
        • 注意事项
        • 添加常用镜像仓库别名
        • 总结
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档