使用一键脚本搭建自己的镜像加速仓库

使用一键脚本搭建自己的镜像加速仓库

老阳
2024-06-17 / 0 评论 / 31 阅读 / 正在检测是否收录...

📝 准备工作

⚠️ 重要:一台网络畅通的服务器。一个域名,无需国内备案,便宜的就行(推荐 xyz 结尾的,首年最低 7 元)!通过脚本可自动实现 HTTPS。

使用脚本前请确认域名的[@记录和*记录]已经解析到该服务器!

🚀 快速开始

通过项目脚本部署

# CentOS
yum -y install wget curl

# ubuntu
apt -y install wget curl

bash -c "$(curl -fsSL https://raw.githubusercontent.com/kubesre/docker-registry-mirrors/main/dockerproxy/install/DockerProxy_Install.sh)"

🔨 功能

  • 一键部署 Docker 镜像代理服务的功能,并且自动配置 https 证书.
  • 支持多个镜像仓库的代理,包括 Docker Hub、GitHub Container Registry (ghcr.io)、Quay Container Registry (quay.io)和 Kubernetes Container Registry (k8s.gcr.io)
  • 自动检查并安装所需的依赖软件,如 Docker、Nginx 等,并确保系统环境满足运行要求. 自动清理注册表上传目录中的那些不再被任何镜像或清单引用的文件
  • 提供了重启服务、更新服务、更新配置和卸载服务的功能,方便用户进行日常管理和维护
  • 支持主流 Linux 发行版操作系统,例如 Centos、Ubuntu、Rocky、Debian、Rhel 等 支持主流 ARCH 架构下部署,包括 linux/amd64、linux/arm64

✨ 教程

前缀替换的 Registry 的参考

源站替换为
cr.l5d.iol5d.your_domain_name
docker.elastic.coelastic.your_domain_name
docker.iodocker.your_domain_name
gcr.iogcr.your_domain_name
ghcr.ioghcr.your_domain_name
k8s.gcr.iok8s-gcr.your_domain_name
registry.k8s.iok8s.your_domain_name
mcr.microsoft.commcr.your_domain_name
nvcr.ionvcr.your_domain_name
quay.ioquay.your_domain_name
registry.jujucharms.comjujucharms.your_domain_name

使用方法

以 argocd 清单文件为例:

wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

首先需要确定原始镜像地址仓库

以 argocd yaml 文件举例:

grep -n image: install.yaml
21645:        image: quay.io/argoproj/argocd:v2.11.0
21739:        image: ghcr.io/dexidp/dex:v2.38.0
21768:        image: quay.io/argoproj/argocd:v2.11.0
21850:        image: quay.io/argoproj/argocd:v2.11.0
21927:        image: redis:7.0.14-alpine
22162:        image: quay.io/argoproj/argocd:v2.11.0
22214:        image: quay.io/argoproj/argocd:v2.11.0
22531:        image: quay.io/argoproj/argocd:v2.11.0
22825:        image: quay.io/argoproj/argocd:v2.11.0

方案一

使用方式:

使用方式都是替换原来镜像的前缀域名即可实现加速效果,比如:

#docker.io
原来地址:redis:7.0.14-alpine # 这个是官方镜像,省略了前边的域名
替换地址:docker.your_domain_name/redis:7.0.14-alpine

#quary.io
原来的地址:quay.io/argoproj/argocd:v2.11.0
替换地址:quay.your_domain_name/argoproj/argocd:v2.11.0

#ghcr.io
原来的地址:ghcr.io/dexidp/dex:v2.38.0
替换地址:ghcr.your_domain_name/dexidp/dex:v2.38.0

方案二

注意事项

通过这种方式只能加速 docker hub 的镜像,对于其他镜像仓库,比如 k8s.gcr.io, quay.io 等,需要使用方案一替换前缀的方式进行加速。

使用方式:

还有一种方案是通过将加速地址写入到 docker 配置文件当中实现加速。

Ubuntu14.04、Debian7Wheezy

对于使用 upstart 的系统而言,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER_OPTS="--registry-mirror=https://docker.your_domain_name"

Ubuntu16.04+、Debian8+、CentOS7

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{
  "registry-mirrors": [
    "https://docker.your_domain_name"
  ]
}

公益镜像仓库

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

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

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

使用方法

k8s.gcr.io/coredns/coredns => kubesre.xyz/k8s.gcr.io/coredns/coredns

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

k8s.gcr.io/coredns/coredns => k8s-gcr.kubesre.xyz/coredns/coredns

总结

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

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

0

评论 (0)

取消