CNB Docker Mirror (cdm)
CNB Docker Mirror 是一个基于 CNB 的 Docker 镜像加速工具,提供本地镜像加速功能。
功能特性
- 镜像加速:在本地启动连接到 CNB 环境的 Docker 镜像加速服务,然后通过配置 Docker 客户端实现镜像加速下载
 - 自动重连:镜像加速服务具备自动心跳保活和断线重连机制
 
使用指南
1 创建 Token
- 访问 https://cnb.cool/profile/token/create 创建 Token
 - 确保 Token 具有以下权限:
repo-cnb-trigger:rwrepo-cnb-detail:r
 
2 创建仓库
- 在 CNB 上创建一个公开仓库(确保有 main 分支),仓库名为 {CNB_REPO},如 
Anyexyz/cdm/runtime - 此仓库将用于存储同步的镜像或者启动云开发环境
 
提示:建议创建独立的顶级组织以及在该组织下创建仓库
3 使用 docker-compose 运行
            
            
              bash
              
              
            
          
          cat >> docker-compose.yml <<EOF
services:
  cdm:
    container_name: cdm
    image: docker.cnb.cool/anyexyz/cdm/docker-mirror:latest-linux-amd64
    ports:
      - "50000:50000"
    environment:
      - CNB_TOKEN=${CNB_TOKEN}
      - CNB_REPO=${CNB_REPO}
    restart: unless-stopped
EOF
        注意:请确保同时设置CNB_TOKEN和CNB_REPO环境变量,否则程序将无法正常运行。
4. 配置 Docker 客户端
- 编辑 Docker 客户端配置文件(通常为 
/etc/docker/daemon.json) - 添加以下内容:
 
            
            
              json
              
              
            
          
          {
  "insecure-registries": [
    "0.0.0.0:50000"
  ],
  "registry-mirrors": [
    "http://0.0.0.0:50000"
  ]
}
        - 重启 Docker 服务:
 
            
            
              bash
              
              
            
          
          sudo systemctl daemon-reload
sudo systemctl restart docker
        特性说明:镜像加速服务启动后会自动与 CNB 建立心跳连接以保持会话。当检测到 CNB 断开(CNB 会在 16 小时后强制关闭环境)时,服务会自动重新创建加速环境并重启加速服务。
注意事项
- 确保仓库为公开访问
 - Token 请妥善保管,不要泄露
 - 建议使用独立组织管理镜像仓库,便于权限管理
 
问题反馈
如有问题或建议,请提交 Issue。
支持作者
https://cnb.cool/users/Anye/appreciate
致谢
- 
感谢 CNB 提供的强大功能和稳定环境,使得这个工具得以实现。
 - 
感谢 xiaofei 大佬 的 原项目 提供思路