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


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。