Total Pageviews

Tuesday, 31 March 2026

Docker-Proxy

 无服务器自建 Docker Registry 镜像代理,支持 Cloudflare Workers、Deno、Netlify 和 Docker 部署。

Warning

代理行为可能违反 Cloudflare、Deno 等平台用户协议,存在被封号的风险。 请务必限制访问范围,或通过环境变量设置合理的伪装策略。不建议用于搭建公开或公共镜像站点。

🚀 快速部署

Cloudflare Workers

Fork 本仓库并在 Cloudflare Workers 中导入,或点击下方按钮一键部署:

Deploy to Cloudflare Workers

Deno

Fork 本仓库并在 Deno Deploy 中导入:

  • Entrypoint 选择 ./src/deno.ts
  • Framework presetInstall commandBuild command 等配置项请保持为空

Netlify

Fork 本仓库并在 Netlify 中导入,或点击下方按钮一键部署:

Deploy to Netlify

Docker

Tip

基于 denoland/deno:alpine 构建,需搭配 Web 服务器使用。

docker-compose

services:
  docker-proxy:
    image: fordes123/docker-proxy:latest
    container_name: docker-proxy
    environment:
      HOME_MODEL: static
      HOME_VALUE: search
    ports:
      - 1993:1993
    restart: unless-stopped

docker cli

docker run -d \
  --name docker-proxy \
  --restart unless-stopped \
  --env HOME_MODEL='static' \
  --env HOME_VALUE='search' \
  -p 1993:1993 \
  fordes123/docker-proxy:latest

📡 路由说明

域名匹配规则

根据自定义域名前缀自动匹配对应镜像源:

域名前缀 对应镜像源
docker.* registry-1.docker.io
gcr.* gcr.io
quay.* quay.io
k8s-gcr.* k8s.gcr.io
k8s.* registry.k8s.io
ghcr.* ghcr.io
cloudsmith.* docker.cloudsmith.io
nvcr.* nvcr.io

参数匹配规则

通过 URL 参数 ns 指定镜像源(优先级高于域名匹配):

  • your-domain.com?ns=gcrgcr.io
  • your-domain.com?ns=quayquay.io

⚙️ 环境变量配置

变量名 必填 默认值 说明
HOME_MODEL static 浏览器访问时的策略
- redirect:重定向
- proxy:代理
- static:静态内容
HOME_VALUE search 策略对应值
- redirect:重定向目标 URL (https://hub.docker.com)
- proxy:代理域名 (hub.docker.com)
- static:静态文本内容 (预设 nginxsearch)

🙏 致谢

本项目基于以下项目修改而来,感谢各位作者的贡献

from  https://github.com/fordes123/docker-proxy

-----

这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

 
 

第三方 DockerHub 镜像服务列表

CF-Workers-docker.io

🐳 CF-Workers-docker.io:Docker仓库镜像代理工具

这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

Caution

docker.fxxk.dedyn.io 已被GFW污染,需自行部署使用。

Warning

根据 Cloudflare 协议 中,2.2.1 第 (j) use the Services to provide a virtual private network or other similar proxy services.

使用本服务可能存在被 Cloudflare 封号的潜在风险,请自行斟酌使用风险。

如果你选择了“根据主机名选择对应的上游地址”方式部署,你可能会:

被 Netcraft 扫描到,收到警告邮件

被 Netcraft 同步到 Google Safe Browsing 标记为钓鱼网站

被 Netcraft 投诉到 Cloudflare 标记为钓鱼网站, 无法正常 pull 镜像

收到律师函

🚀 部署方式

  • Workers 部署:复制 _worker.js 代码,保存并部署即可
  • Pages 部署:Fork连接GitHub 一键部署即可

⚙️ 如何使用? 视频教程

例如您的Workers项目域名为:docker.fxxk.dedyn.io

1.官方镜像路径前面加域名

docker pull docker.fxxk.dedyn.io/stilleshan/frpc:latest
docker pull docker.fxxk.dedyn.io/library/nginx:stable-alpine3.19-perl

2.一键设置镜像加速

修改文件 /etc/docker/daemon.json(如果不存在则创建)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.fxxk.dedyn.io"]  # 请替换为您自己的Worker自定义域名
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 配置常见仓库的镜像加速

3.1 配置

Containerd 较简单,它支持任意 registrymirror,只需要修改配置文件 /etc/containerd/config.toml,添加如下的配置:

    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
          endpoint = ["https://xxxx.xx.com"]

Podman 同样支持任意 registrymirror,修改配置文件 /etc/containers/registries.conf,添加配置:

unqualified-search-registries = ['docker.io', 'k8s.gcr.io', 'gcr.io', 'ghcr.io', 'quay.io']

[[registry]]
prefix = "docker.io"
insecure = true
location = "registry-1.docker.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "registry.k8s.io"
insecure = true
location = "registry.k8s.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "k8s.gcr.io"
insecure = true
location = "k8s.gcr.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "gcr.io"
insecure = true
location = "gcr.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "ghcr.io"
insecure = true
location = "ghcr.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "quay.io"
insecure = true
location = "quay.io"

[[registry.mirror]]
location = "xxxx.xx.com"

3.3 使用

对于以上配置,k8s 在使用的时候,就可以直接 pull 外部无法 pull 的镜像了。

# 手动可以直接pull配置了mirror的仓库
crictl pull registry.k8s.io/kube-proxy:v1.28.4
docker  pull nginx:1.21

🔧 变量说明

变量名 示例 必填 备注
URL302 https://t.me/CMLiussss 主页302跳转
URL https://www.baidu.com/ 主页伪装(设为nginx则伪装为nginx默认页面)
UA netcraft 支持多元素, 元素之间使用空格或换行作间隔

🛠️ 第三方 DockerHub 镜像服务

注意:

  • 以下内容仅做镜像服务的整理与搜集,未做任何安全性检测和验证。
  • 使用前请自行斟酌,并根据实际需求进行必要的安全审查。
  • 本列表中的任何服务都不做任何形式的安全承诺或保证。
DockerHub 镜像仓库 镜像加地址
bestcfipas 镜像服务 https://docker.registry.cyou

https://docker-cf.registry.cyou

https://registry.lfree.org
zero_free 镜像服务 https://docker.jsdelivr.fyi

https://docker.aeko.cn
mingyu 镜像服务 https://hubp.de
Docker 镜像加速站 https://docker.1panel.live
Hub Proxy https://hub.rat.dev
DaoCloud 镜像站 https://docker.m.daocloud.io

🙏 鸣谢

💖 赞助支持 - 提供云服务器

  • digitalvirt.com

🛠 开源代码引用

from   https://github.com/cmliu/CF-Workers-docker.io

------

 https://github.com/ciiiii/cloudflare-docker-proxy

------

 Docker 镜像代理,通过 GitHub Actions 将 docker.io、gcr.io、registry.k8s.io、k8s.gcr.io、quay.io、ghcr.io 等国外镜像转换为国内镜像加速下载.

hub-mirror

使用国内镜像仓库来提供(但不限于) docker.io、gcr.io、registry.k8s.io、k8s.gcr.io、quay.io、ghcr.io 等国外镜像加速下载服务

示例:#2816

gopher云原生公众号二维码

👆 扫码或搜索关注公众号:gopher云原生

使用流程

1️⃣ Fork 本项目

Fork 该项目,后续所有操作都在你 Fork 的仓库中进行。

2️⃣ 绑定账号

  • 进入 SettingsSecrets and variablesActions

  • 选择 New repository secret,并添加以下 Secrets

    • DOCKER_USERNAME:镜像仓库登录名
    • DOCKER_TOKEN:镜像仓库密码
    • DOCKER_REPOSITORY:镜像仓库地址

其中 DOCKER_REPOSITORY 示例:

  • 腾讯云: ccr.ccs.tencentyun.com/[namespace]
  • 阿里云: registry.cn-hangzhou.aliyuncs.com/[namespace]

例如我的是:registry.cn-hangzhou.aliyuncs.com/hubmirrorbytogettoyou

🔹 示例截图

阿里云镜像仓库

Secrets 配置示例

3️⃣ 开启 Issues 功能

  • 进入 SettingsGeneralFeatures
  • 启用 Issues

🔹 示例截图

开启 Issues

4️⃣ 配置 Actions 权限

  • 进入 SettingsActionsGeneral
  • Workflow permissions 选项中,选择:
    • Read and write permissions

🔹 示例截图

修改 Actions 权限

5️⃣ 添加 Issue Labels

  • 进入 IssuesLabels

  • 点击 New label

  • 依次添加以下 Labels:

    • hub-mirror
    • success
    • failure

🔹 示例截图

添加 Labels

6️⃣ 启用 Actions Workflow

  • 进入 Actions
  • 选择 hub-mirror
  • 在右上角 ··· 菜单中选择 Enable Workflow

🔹 示例截图

启用 Workflow

7️⃣ 提交 Issue 触发同步

  • Fork 的仓库 Issues 页面,点击 New issue
  • 选择 hub-mirror 模板,填写所需信息并提交

🔹from https://github.com/togettoyou/hub-mirror

 

No comments:

Post a Comment