Anye
Anye
Published on 2025-03-25 / 91 Visits
0
1

DockerHub Mirror 终极解决方案——零成本,速度超快!

前言

CNB 作为一款强的一批的云原生开发平台,在上线之初就提供了许多开发者友好的功能,其中一点当属强大的加速网络。

以此为契机,我写了第一个基于 CNB 的 镜像加速方案,受限于 CNB 的环境回收机制,这个方案只适合临时使用,较为灵活。

然后发现了 xiaofei 大佬 写的 https://cnb.cool/xiaofei/cnb_docker_mirror工具,遂有了灵感二开出本项目

项目介绍

https://cnb.cool/Anyexyz/cdm/docker-mirror

CNB Docker Mirror 是一个基于 CNB 的 Docker 镜像加速工具,提供本地镜像加速功能。

功能特性

  • 镜像加速:在本地启动连接到 CNB 环境的 Docker 镜像加速服务,然后通过配置 Docker 客户端实现镜像加速下载。

  • 自动重连:镜像加速服务具备自动心跳保活和断线重连机制。

  • 自动启动:使用 docker 运行,自动启动加速服务并保持后台运行

使用教程

1. 创建 CNB 账号

打开 https://cnb.cool,点击右上角登录,使用微信扫码创建账号

2. 创建组织

根据需要填写组织名创建组织

3. 创建仓库

选择仓库归属组织,填写仓库名称创建仓库

如此处能得到仓库:Anyexyz/runtime记住该 REPO

4. 创建访问令牌

访问 https://cnb.cool/profile/token/create ,创建访问令牌,使用范围建议选定刚才创建的仓库

授权范围需要勾选

  • repo-cnb-trigger:rw

  • repo-cnb-detail:r

如图

其余权限保持默认,点击 创建

你会得到这样一个东西

令牌名:cdm
Git Username:cnb
Token:1S1b53qHRtGjvzmD5hNEQFAwziD

记住此处的 Token

5. 创建 docker-composer.yml 文件

在合适的位置创建 docker-composer.yml 文件

services:
  cdm:
    container_name: cdm
    image: docker.cnb.cool/anyexyz/cdm/docker-mirror:latest-linux-amd64
    ports:
      - "50000:50000"
    environment:
      - CNB_TOKEN=1S1b53qHRtGjvzmD5hNEQFAwziD # 将这里的 1S1b53qHRtGjvzmD5hNEQFAwziD 换成你上面获取到的token
      - CNB_REPO=Anyexyz/runtime              # 将这里的 Anyexyz/runtime 换成你的 REPO
    restart: unless-stopped

注意:请确保同时设置CNB_TOKEN和CNB_REPO环境变量,否则程序将无法正常运行。

6. 启动!

docker-compose up -d

7. 配置 Docker 客户端

编辑 Docker 客户端配置文件(通常为 /etc/docker/daemon.json),添加以下内容:

{
  "insecure-registries": [
    "0.0.0.0:50000"
  ],
  "registry-mirrors": [
    "http://0.0.0.0:50000"
  ]
}

重启 docker 服务

sudo systemctl daemon-reload
sudo systemctl restart docker

特性说明:镜像加速服务启动后会自动与 CNB 建立心跳连接以保持会话。当检测到 CNB 断开(CNB 会在 16 小时后强制关闭环境)时,服务会自动重新创建加速环境并重启加速服务。

效果一览

启动

镜像拉取

速度一览

注意事项

  • 确保仓库为公开访问

  • Token 请妥善保管,不要泄露

  • 建议使用独立组织管理镜像仓库,便于权限管理

问题反馈

如有问题或建议,请提交 Issue,或在本文下方评论。

致谢

  • 感谢 CNB 提供的强大功能和稳定环境,使得这个工具得以实现。

  • 感谢 xiaofei 大佬原项目 提供思路


Comment