阿里云 ESA 边缘函数转发代理 docker registry - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jqknono
V2EX    分享创造

阿里云 ESA 边缘函数转发代理 docker registry

  •  
  •   jqknono 126 天前 1434 次点击
    这是一个创建于 126 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开源地址: https://github.com/jqknono/esa-registry-proxy

    ESA Docker Registry Proxy

    这是一个基于 Alibaba ESA (Edge Security Acceleration) 的 Docker Registry 转发代理,为中国大陆用户提供更快的 Docker 镜像下载服务,并实现镜像白名单功能以增强安全性。

    功能特性

    1. Docker Registry 代理: 转发 Docker Hub 请求,提升中国大陆用户下载速度
    2. 镜像白名单: 限制只能下载指定的镜像,提高安全性
    3. 支持多种匹配模式: 支持精确匹配和前缀匹配
    4. 智能缓存机制: 优先使用缓存数据,减少重复请求,提高响应速度

    快速开始

    前提条件

    • Node.js 16+
    • npm 或 yarn
    • Alibaba ESA 账号及 AccessKey ID 和 Secret

    安装部署

    1. 克隆项目:

      git clone https://github.com/jqknono/esa-registry-proxy 

    部署到 Alibaba ESA

    方法一:使用 ESA CLI (推荐)

    1. 安装 ESA CLI:

      npm install esa-cli -g 
    2. 登录 ESA:

      esa login 
    3. 初始化项目:

      esa init 
    4. 提交代码:

      esa commit 
    5. 部署函数:

      esa deploy 
    6. 绑定域名:

      esa domain add registry.jqknono.com 

    方法二:手动部署

    请参考 DEPLOYMENT.md 文件获取详细的手动部署说明。

    白名单功能详解

    白名单功能是本项目的核心安全特性,可以限制允许通过代理拉取的 Docker 镜像,防止恶意使用。

    白名单配置格式

    白名单配置为逗号分隔的字符串,每个字符串代表一个允许下载的镜像名称模式:

    WHITELIST=library/nginx,library/redis,library/* 

    支持的匹配模式

    • 精确匹配: 如 library/nginx,只允许下载完全匹配的镜像
    • 前缀匹配: 如 library/*,允许下载所有 library 组织的镜像

    配置示例

    # 只允许官方 nginx 和 redis 镜像 WHITELIST=library/nginx,library/redis # 允许所有官方镜像 WHITELIST=library/* # 允许特定组织的所有镜像 WHITELIST=jqknono/* 

    使用方式

    直接使用

    docker pull registry.jqknono.com/library/nginx 

    配置 Docker 客户端

    在 Docker 配置中添加镜像仓库:

    { "registry-mirrors": ["https://registry.jqknono.com"] } 

    技术实现

    • 利用 Alibaba ESA 的边缘网络加速镜像拉取
    • 支持 Docker Registry v2 API
    • 实现镜像白名单安全控制
    • 利用 ESA Cache API 实现智能缓存,优先使用缓存数据,缓存时间为服务允许的最大值(一年)

    注意事项

    • 此项目主要用于个人开发环境或小型团队使用
    • 大规模生产环境建议使用专业的镜像仓库服务
    • 请确保您的 Alibaba ESA 账户有足够的配额

    参考

    3 条回复    2025-09-30 17:40:43 +08:00
    jqknono
        1
    jqknono  
    OP
       126 天前
    实话实说, 比 cloudflare 慢很多, 不过写都写了, 就发上来给大家玩玩, 研究下 ES 可以怎么折腾.

    Cloudflare : https://github.com/jqknono/cloudflare-registry-proxy
    阿里云 ESA: https://github.com/jqknono/esa-registry-proxy
    beihanggmj
        2
    beihanggmj  
       126 天前
    good
    dandankele
        3
    dandankele  
       58 天前
    这玩意儿容易被封吧。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2938 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 13:38 PVG 21:38 LAX 05:38 JFK 08:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86