前提条件:
1、cloudflare 账号
2、一个域名,需要将dns服务器指向 cloudflare 进行托管
一、首先安装 wrangler 命令行工具
1、 安装 npm 服务
- 在 nodejs官网 下载安装包,进行安装
- 声明npm代理
npm config set registry https://registry.npmmirror.com
2、安装 wrangler 工具
npm install wrangler --save-dev
3、登录授权 wrangler
npx wrangler login
二、配置 cloudflare 的 worker 项目
1、安装 git 工具
- 在 git 官网 下载安装包,一键安装
2、下载 hammal 项目
git clone https://github.com/tomwei7/hammal.git cd hammal copy wrangler.toml.sample wrangler.toml
配置文件中,需要修改几个内容:
- account_id 通过下面命令获取
npx wrangler whoami
- name 自定义,如设置:docker-proxy
- 添加内容
main = "src/index.ts" compatibility_date = "2022-10-29"
- kv_namespace 中,binding保持不变,id通过下面命令创建获取
npx wrangler kv:namespace create docker-proxy
3、部署应用
npx wrangler deploy
三、绑定自定义域名发布
1、在任意厂商申请一个域名,在cloudflare进行绑定
2、按照提示,修改dns服务器,指向 cloudflare
3、在 worker 项目中,添加绑定的域名
四、修改 docker 配置文件,添加代理域名
1、修改 /etc/docker/daemon.json 文件,内容如下
root@server:~# cat /etc/docker/daemon.json { "default-address-pools": [ {"base": "172.16.0.0/16", "size":24} ], "registry-mirrors": ["https://****.****.xyz"] #这里写上面绑定的域名 }
2、进行测试
root@server:~# docker pull nginx Using default tag: latest latest: Pulling from library/nginx 2cc3ae149d28: Already exists a97f9034bc9b: Pull complete 9571e65a55a3: Pull complete 0b432cb2d95e: Pull complete 24436676f2de: Pull complete 928cc9acedf0: Pull complete ca6fb48c6db4: Pull complete Digest: sha256:56b388b0d79c738f4cf51bbaf184a14fab19337f4819ceb2cae7d94100262de8 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
3、该项目也可以加速 k8s.gcr.io, gcr.io, quay.io 的镜像
# 拉取 k8s.gcr.io 镜像 docker pull hammal.{your_name}.workers.dev/k8sgcr/kubernetes-dashboard-amd64:v1.8.3 # 拉取 gcr.io 镜像 docker pull hammal.{your_name}.workers.dev/gcr/youlib/image:tags # 拉取 quay.io 镜像 docker pull hammal.{your_name}.workers.dev/quay/coreos/flannel:v0.13.1-rc2
免费计划支持每天 10w 次的请求调用,足以满足日常用户使用