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

ESA Docker Registry Proxy

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

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

功能特性

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

快速开始

前提条件

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

安装部署

  1. 克隆项目:

    bash 复制代码
    git clone https://github.com/jqknono/esa-registry-proxy

部署到 Alibaba ESA

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

  1. 安装 ESA CLI:

    bash 复制代码
    npm install esa-cli -g
  2. 登录 ESA:

    bash 复制代码
    esa login
  3. 初始化项目:

    bash 复制代码
    esa init
  4. 提交代码:

    bash 复制代码
    esa commit
  5. 部署函数:

    bash 复制代码
    esa deploy
  6. 绑定域名:

    bash 复制代码
    esa domain add registry.jqknono.com

方法二:手动部署

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

白名单功能详解

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

白名单配置格式

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

env 复制代码
WHITELIST=library/nginx,library/redis,library/*

支持的匹配模式

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

配置示例

env 复制代码
# 只允许官方nginx和redis镜像
WHITELIST=library/nginx,library/redis

# 允许所有官方镜像
WHITELIST=library/*

# 允许特定组织的所有镜像
WHITELIST=jqknono/*

使用方式

直接使用

bash 复制代码
docker pull registry.jqknono.com/library/nginx

配置 Docker 客户端

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

json 复制代码
{
  "registry-mirrors": ["https://registry.jqknono.com"]
}

技术实现

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

注意事项

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

参考

相关推荐
超龄超能程序猿22 分钟前
图片查重从设计到实现(2)Milvus安装准备etcd介绍、应用场景及Docker安装配置
docker·etcd·milvus
江湖有缘1 小时前
【Docker项目实战】在Docker环境下部署go-file文件分享工具
docker·容器·golang
小和尚同志11 小时前
26.4k Star 的开源自托管仪表盘,关注你想关注的一切
docker·容器·开源
Franciz小测测12 小时前
proxmox 解决docker容器MongoDB创建报错MongoDB 5.0+ requires a CPU with AVX support
运维·docker·容器
青梅主码-杰哥13 小时前
中央广播电视总台联合阿里云研究院权威发布《中国人工智能应用发展报告(2025)》:我国依旧需要大力注重人工智能人才的培养
人工智能·阿里云·云计算
NUZGNAW13 小时前
等保二级、三级配置表(阿里云)
阿里云·云计算
旧书包的青春13 小时前
阿里云ECS坑之dnf-makecache系统软件更新检测服务
阿里云·云计算
go546315846514 小时前
基于阿里云平台的文章评价模型训练与应用全流程指南
图像处理·人工智能·深度学习·阿里云·cnn·机器人·云计算
顽疲14 小时前
从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码
java·vue.js·spring boot·阿里云·uni-app
鹿先森AI探索之路15 小时前
Windows11 本地安装docker Desktop 部署dify 拉取镜像报错
运维·docker·容器