remrin

remrin

github
email

使用 Cloudflare Workers 自建 Docker 镜像源

前几天各大镜像站全部挂掉,拉取 Docker镜像就成了问题

开始我也不关心,挂了就上代理去拉,但是在我本地使用Docker的时候即使挂了代理也不能正常拉取

于是我开始找解决方案,找了一圈,发现有以下方案

  • 利用Cloudflare Workers 搭建,需要一个 域名 -> 原帖
  • 自建 Nexus 3, 需要一台国外 VPS 最好 4G内存以上,还需要一个 域名 -> 原帖
  • 使用 Github ActionDockerHub 镜像转存到阿里云私有仓库,这个只需要一个 Github 账号 -> 原帖
  • 使用 Nginx反代 ,比较适合已经有一台服务器的人 -> 原帖
  • 其他的话就是找现成的镜像源,一般这类不是很稳定,就没考虑这个

我用的第一种方案,比较简单,原帖 的教程并不是很详细,我这里完善一下

  1. 进入 Cloudflare 首页 ,在左侧 Workers & Pages 中新建一个 Workers, 同时保存一下右侧的 Account ID

Workers 起一个名字,点击 Save ,然后点击 Finish
image
出现这个页面,就可以进行下一步了
image

  1. Fork 这个仓库Clone 到本地

按照惯例先装依赖

pnpm i

然后将 wrangler.toml.sample 重命名为 wrangler.toml

cp wrangler.toml.sample wrangler.toml

编辑一下 wrangler.toml 文件,修改 nameaccount_id

name = "workers的名称"
account_id = "这里填写上面复制的 Account ID"
main = "src/index.ts"
workers_dev = true
compatibility_date = "2024-06-08"

kv_namespaces = [
	 { binding = "HAMMAL_CACHE", id = "you kv id" }
]
  1. 获取一下 kv ID,执行完下面的命令会输出 id ,修改配置中的 id
npx wrangler kv:namespace create hammal_cache

输出

  1. 之后部署,执行
pnpm run deploy

Warning

这里会提示,你即将发布一个 Workers 服务,该服务最后一次是通过 Cloudflare Dashboard 发布的,通过 Cloudflare Dashboard 所做的编辑将会被你本地的代码和配置覆盖

image

输入 y , 正常会打开浏览器让你授权,授权即可,我这里因为已经部署过了,所以没有弹出来

image
  1. 给刚刚部署好的 Workers 添加一个域名

等待域名生效就可以正常使用了,一般来说在服务器上修改 /etc/docker/daemon.json,配置一下你刚搭建好的源地址就行

"registry-mirrors": [
    "https://hammal.example.com"
  ]

我在Mac 上使用的是 Orbstack,则需要在软件中直接配置

image

此文由 Mix Space 同步更新至 xLog
原始链接为 https://remrin.dev/posts/dev/docker


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。