使用CF Workers搭建Docker Proxy
目录
由于一些原因,国内无法拉取 Docker Hub 镜像,所以需要通过一些手段来解决问题。
1 前提
- 有 Cloudflare 账号
- 有自己的域名,且域名托管在 Cloudflare 上
- Cloudflare Workers 额度足够
2 解决 workers.dev 域名DNS污染
进入 Cloudflare 主页:https://dash.cloudflare.com/
添加站点,输入你自己的域名,套餐选择free
添加站点之后根据提示去你的域名服务商修改dns 地址为 Cloudflare 提供的 dns 地址,等待生效,出现以下提示代表成功。
3 搭建 proxy
Fork 复制cloudflare-docker-proxy项目
修改 src/index.js
的 const routes
块的内容
const routes = {
"docker.your-domain.com": "https://registry-1.docker.io",
"quay.your-domain.com": "https://quay.io",
"gcr.your-domain.com": "https://k8s.gcr.io",
"k8s-gcr.your-domain.com": "https://k8s.gcr.io",
"ghcr.your-domain.com": "https://ghcr.io",
};
将your-domain.com
修改为你的域名
显示如下页面,按步骤操作
此处 Account ID 即首页 URL 后一串字符,比如我的为https://dash.cloudflare.com/bbb4199a897de10e7c1056e1c56fd754
API Token 在个人资料页面,选择 api 令牌创建
Deploy 部署后如下
在 Cloudflare 的 DNS 记录里添加 A
指向一个任意的地址,比如192.0.2.1
在 Workers 路由里,添加 *.your-domain/*
路由指向 cloudflare-docker-proxy
至此 proxy 配置完成
4 配置 docker
通过命令拉取测试,docker pull docker.<your-domain>/library/nginx
将配置后的 docker.<your-domain>
添加到 /etc/docker/daemon.json
的 registry-mirrors
中并重启 Docker 生效。