基于 CNB 的搭建国内 Docker 镜像代理服务

基于 CNB 的搭建国内 Docker 镜像代理服务

前言

之前有写过如果使用利用cloudflare的worker服务搭建DockerHub镜像加速 进行docker镜像拉取。但是呢还是会存在机器无法访问cf导致拉取超时的问题。因为最近在研究CNB,发现可以通过caddy反向代理即可进行加速,也是很爽!

注意了,开发环境创建后,会定时检测心跳,如果 10分钟 内未进入 VSCode 页面,则回收。

参考:https://docs.cnb.cool/zh/vscode/working-principle.html 手册的按需创建,闲时回收

开始

因为CNB是腾讯产品,也暂时使用了腾讯服务器,因此可使用https://mirror.ccs.tencentyun.com进行内网加速,参考:https://cloud.tencent.com/document/product/1207/45596

接下来,我们将逐步介绍如何基于 CNB 搭建国内 Docker 镜像代理服务。

基于CNB构建环境

首先,确保你已经在 CNB 平台上创建好了对应的仓库。或者你自行克隆我仓库也行:https://cnb.cool/guoliangjun/cnb-mirror-docker

创建.cnb.yml文件

此文件在整个环境构建过程中起着关键作用,其内容如下:

$:
  vscode:
    - runner:
        cpus: 1
      services:
        - vscode
        - docker
      stages:
        - name: get caddy
          script: curl -s https://api.github.com/repos/caddyserver/caddy/releases/latest | jq -r '.assets[] | select(.name | test("linux_amd64.tar.gz$")) | .browser_download_url' | xargs curl -LO
        - name: add caddy
          script: tar -xzf caddy_*.tar.gz caddy && mv caddy /usr/local/bin && rm caddy_*.tar.gz && chmod +x /usr/local/bin/caddy
        - name: run caddy
          script: caddy run --config /workspace/Caddyfile --adapter caddyfile
YAML
创建Caddyfile文件

Caddy 的核心配置文件Caddyfile内容如下:

# 全局日志配置
{
    log {
        output file /workspace/caddy.log # 日志输出到指定文件
        format console # 日志格式为控制台友好格式
        level INFO # 日志级别为 INFO
    }
}
# 代理腾讯
:2080 {
    encode gzip
    reverse_proxy https://mirror.ccs.tencentyun.com {
        header_up Host {http.reverse_proxy.upstream.hostport}
    }
}
# 代理cf,部署参考:https://199604.com/3010
:2081 {
    encode gzip
    reverse_proxy https://docker.199604.com {
        header_up Host {http.reverse_proxy.upstream.hostport}
        header_up X-Forwarded-Proto https
    }
}
Txt
点击云原生开发进入环境

完成上述文件创建后,点击 CNB 平台上的 “云原生开发” 选项进入环境。

image-20250316230421012

初始化环境后,选择在线WebIDE打开,即可进行边开发边体验

image-20250316230532496

当环境启动并运行正常后,访问 CNB 自动穿透的 2080 端口对应的地址,该地址即为我们搭建的 Docker 镜像代理服务地址。需要特别注意的是,在此过程中务必保持 “WebIDE” 窗口处于打开状态,否则开发环境会自动关闭,导致代理服务不可用。(可插入相关访问地址示例图片)

image-20250317230148986

测试

将其修改为使用我们搭建的加速拉取镜像命令,假设 CNB 分配的代理地址为https://cnb-mhd-xxxx-001-2080.cnb.run,则新的拉取命令为:

# 配置镜像
# 原拉取镜像命令
docker pull library/redis:latest
# 改为加速拉取镜像命令
docker pull https://cnb-mhd-xxxx-001-2080.cnb.run/library/redis:latest
Bash

image-20250317230436178

注意了,开发环境创建后,会定时检测心跳,如果 10分钟 内未进入 VSCode 页面,则回收,最长可以16小时,因此需要拉取镜像时间我们再拉起开发环境即可加速啦~

参考:https://docs.cnb.cool/zh/vscode/working-principle.html 手册的按需创建,闲时回收

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇