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:rw
repo-cnb-detail:r
2 创建仓库
- 在 CNB 上创建一个公开仓库(确保有 main 分支),仓库名为 {CNB_REPO},如
Anyexyz/cdm/runtime
- 此仓库将用于存储同步的镜像或者启动云开发环境
提示:建议创建独立的顶级组织以及在该组织下创建仓库
3 使用 docker-compose 运行
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
) - 添加以下内容:
{
"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。
支持作者
https://cnb.cool/users/Anye/appreciate
致谢
感谢 CNB 提供的强大功能和稳定环境,使得这个工具得以实现。
感谢 xiaofei 大佬 的 原项目 提供思路