教程:https://www.cnblogs.com/guangdelw/p/18357199 **前提** - github账号 - cloudflare账号 - 一个自己的域名 这些准备这里就不多说了 域名托管到 cloudflare 上面的步骤,也不赘述了,不明白的 可以参看  [https://www.cnblogs.com/guangdelw/p/18246236](https://www.cnblogs.com/guangdelw/p/18246236) **fork项目到自己的仓库** 仓库地址  [https://github.com/cmliu/CF-Workers-docker.io](https://github.com/cmliu/CF-Workers-docker.io) 然后fork到自己的仓库 [![Exported image](IMG-20260516155638573.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813153611867-422076951.png) **部署** **Pages 方式部署** 点击 **Worker和Pages** 再点 **概述** 再点 **新建** [![Exported image](IMG-20260516155638622.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813154658016-1605265913.png) 选择 **Pages** 点击 **连接到git** [![Exported image](IMG-20260516155638639.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813154807275-1668312079.png) 选择 **GitHub** 选择自己的github账户,选择之前fork到自己仓库的仓库,然后点击 **开始设置** [![Exported image](IMG-20260516155638786.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813154924945-68932267.png) 不用修改,直接点击 **保存并部署** [![Exported image](IMG-20260516155638803.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155129795-1425743904.png) 然后等待部署完成 [![Exported image](IMG-20260516155638855.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155153913-251246437.png) [![Exported image](IMG-20260516155638870.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813162006078-487647297.png) 点击 **继续处理项目** [![Exported image](IMG-20260516155638920.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155247551-277528992.png) 选择 **自定义域** 点击 **设置自定义域** [![Exported image](IMG-20260516155638996.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155438570-1843814041.png) 输入已经托管的域名的一个任意子域名 [![Exported image](IMG-20260516155639053.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155618930-1949501985.png) **激活域** [![Exported image](IMG-20260516155639071.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155757035-796422054.png) 等到生效 [![Exported image](IMG-20260516155639117.jpeg)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160046854-58226688.jpg) [![Exported image](IMG-20260516155639146.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160135178-863226066.png) 然后直接访问自己的域名 [https://hub.abc.com](https://hub.abc.com/) 会直接被代理到docker hub的主页 [![Exported image](IMG-20260516155639204.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160350094-327393640.png) 就可以正常搜索了 然后也可以使用这个域名进行拉取镜像了 修改docker的加速地址 sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json \<\<-'EOF'{ "registry-mirrors": ["[https://hub.abc.com](https://hub.abc.com)"] # 请替换为您自己的Worker自定义域名}EOFsudo systemctl daemon-reloadsudo systemctl restart docker 为了防止被封,可以设置变量 | | | | | |---|---|---|---| |**变量名**|**示例**|**必填**|**备注**| |URL302|[https://t.me/CMLiussss](https://t.me/CMLiussss)|❌|主页302跳转| |URL|[https://www.baidu.com/](https://www.baidu.com/)|❌|主页伪装(设为**nginx**则伪装为nginx默认页面)| |UA|netcraft|❌|支持多元素, 元素之间使用空格或换行作间隔| 最简单的方法就是设置 **URL** 这个变量 [![Exported image](IMG-20260516155639255.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160804318-389211878.png) [![Exported image](IMG-20260516155639263.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160835358-978419887.png) 然后重新部署 [![Exported image](IMG-20260516155639308.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160948023-1937755557.png) 等待部署完成 [![Exported image](IMG-20260516155639379.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161025575-2095866209.png) 然后再访问你的域名,就会变成nginx的默认页面 [![Exported image](IMG-20260516155639426.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161131191-865329089.png) 但是不会影响镜像的拉取 **Workers 方式部署** 也可以 Workers 方式部署,方法跟 [利用cloudflare workers解决docker无法拉取镜像问题](https://www.cnblogs.com/guangdelw/p/18246236) 一样,直接把 [_worker.js](https://raw.githubusercontent.com/cmliu/CF-Workers-docker.io/main/_worker.js) 复制到部署的代码中 然后设置自定义域 也类似 [![Exported image](IMG-20260516155639451.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161640908-1421644481.png) 然后添加环境变量 [![Exported image](IMG-20260516155639493.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161712516-1053307535.png) 效果是一样的 [![Exported image](IMG-20260516155639523.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813153611867-422076951.png)[![Exported image](IMG-20260516155639571.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813154658016-1605265913.png)[![Exported image](IMG-20260516155639624.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813154807275-1668312079.png)[![Exported image](IMG-20260516155639640.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813154924945-68932267.png)[![Exported image](IMG-20260516155639691.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155129795-1425743904.png)[![Exported image](IMG-20260516155639741.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155153913-251246437.png) [![Exported image](IMG-20260516155639763.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813162006078-487647297.png)[![Exported image](IMG-20260516155639810.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155247551-277528992.png)[![Exported image](IMG-20260516155639825.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155438570-1843814041.png)[![Exported image](IMG-20260516155639881.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155618930-1949501985.png)[![Exported image](IMG-20260516155639932.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813155757035-796422054.png)[![Exported image](IMG-20260516155639984.jpeg)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160046854-58226688.jpg) [![Exported image](IMG-20260516155640001.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160135178-863226066.png)[![Exported image](IMG-20260516155640050.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160350094-327393640.png)[![Exported image](IMG-20260516155640083.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160804318-389211878.png) [![Exported image](IMG-20260516155640134.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160835358-978419887.png)[![Exported image](IMG-20260516155640179.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813160948023-1937755557.png)[![Exported image](IMG-20260516155640212.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161025575-2095866209.png)[![Exported image](IMG-20260516155640259.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161131191-865329089.png)[![Exported image](IMG-20260516155640289.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161640908-1421644481.png)[![Exported image](IMG-20260516155640334.png)](https://img2024.cnblogs.com/blog/2908207/202408/2908207-20240813161712516-1053307535.png)