Skip to content

whyun-pages/docker-registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-registry

使用 cloudflare pages 来加速访问 dockerhub 镜像。

风险警告

Cloudflare 在 2024 年 12 月 3 日更新使用协议,此次更新 Cloudflare 明确说明不得将其服务作为代理使用,否则将被视为违反服务条款的行为可能会被封号。具体参见 Cloudflare Terms 第 2 项服务、第 2.2 项使用服务、第 2.2.1 项限制中。具体参见 Cloudflare更新服务条款明确说明不得将其作为代理使用 也不得优选IP

本项目仅供学习和测试使用使用,请于 24 小时后取消 cloudflare 的部署。

快速部署

请将本项目仓库 fork 到自己的 github 仓库,然后在 cloudflare pages 中新建项目来使用。 1.使用 cloudflare 账号登录其 dashboard 后台,选择 Workers 和 Pages 菜单,然后点击 概述,接着点击 创建 按钮,在打开的页面中选择 Pages 选项卡:

图1

选择 git 模式进行部署。

2.选择你 clone 好的项目,点击 开始设置 按钮:

图2

3.除了项目名字和输出目录 public 之外,所有配置项都使用默认值即可,点击 保存并部署 按钮:

图3

4.经过短暂时间的等待,如果你看到如下界面,恭喜你部署成功:

图4

5.点击 继续处理项目按钮,在展示的页面中点击 访问站点 链接,即可验证站点的部署情况,不过默认需要等几分钟才能打开网站。

图5

6.网站可访问后展示效果:

图6

更多详细使用教程参见 cloudflare page 教程(一)项目初始化

配置

登录配置

当前项目部署完成后,必须使用 docker login 命令进行登录,才能正常使用。否则进行 docker pull 镜像的时候,会如下报错:

Error response from daemon: Head "https://你的部署域名/v2/library/镜像名/manifests/latest": unauthorized: Unauthorized

同时需要注意,docker login 默认会登录 docker hub 镜像站,但是我们的自己搭建的 Pages 网站使用的域名和 docker.io 不是一个域名,所以需要在调用 docker login 命令时追加 Pages 网站部署域名,即 docker login 你的部署域名

例如你的镜像站域名是 docker-registry-xxx.pages.dev ,那么需要保证调用 docker login docker-registry-xxx.pages.dev 是成功的。

权限配置

可以通过配置若干环境变量,来对镜像代理的行为做控制。

以下用到的环境变量,通过 cloudflare dashboard 的面板进行设置。

WHITE_LIST

镜像站允许的用户列表,多个用户之间用英文逗号分隔,默认为空。WHITE_LIST 生效后,在拉取任何镜像时,你需要确保 docker login (或者 podman login) 命令之前已经调用成功,否则后端读取不到登录用户,会直接报错,不会再拉取镜像。

已知问题

关于部署后域名无法访问问题

cloudflare pages 解析出来的域名可能在某些运营商上无法访问,这时可以借助优选 IP 项目 CloudflareSpeedTest ,找到一个本地访问最好的 IP ,配置到本地 hosts 中。注意优选 IP 依然是有违 cloudflare 条款的。

About

make your own free docker registry on cloudflare pages

Topics

Resources

Stars

Watchers

Forks