前幾天各大鏡像站全部掛掉,拉取 Docker 鏡像就成了問題
開始我也不關心,掛了就上代理去拉,但是在我本地使用Docker的時候即使掛了代理也不能正常拉取
於是我開始找解決方案,找了一圈,發現有以下方案
- 利用
Cloudflare Workers搭建,需要一個域名-> 原帖 - 自建
Nexus 3, 需要一台國外VPS最好4G內存以上,還需要一個域名-> 原帖 - 使用
Github Action將DockerHub鏡像轉存到阿里雲私有倉庫,這個只需要一個Github帳號 -> 原帖 - 使用
Nginx反代,比較適合已經有一台伺服器的人 -> 原帖 - 其他的話就是找現成的鏡像源,一般這類不是很穩定,就沒考慮這個
我用的第一種方案,比較簡單,原帖 的教程並不是很詳細,我這裡完善一下
- 進入 Cloudflare 首頁 ,在左側
Workers & Pages中新建一個 Workers, 同時保存一下右側的Account ID
給 Workers 起一個名字,點擊 Save ,然後點擊 Finish

出現這個頁面,就可以進行下一步了

Fork這個倉庫,Clone到本地
按照慣例先裝依賴
pnpm i
然後將 wrangler.toml.sample 重命名為 wrangler.toml
cp wrangler.toml.sample wrangler.toml
編輯一下 wrangler.toml 文件,修改 name和account_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" }
]
- 獲取一下
kv ID,執行完下面的命令會輸出 id ,修改配置中的id
npx wrangler kv:namespace create hammal_cache

- 之後部署,執行
pnpm run deploy
Warning
這裡會提示,你即將發布一個 Workers 服務,該服務最後一次是通過 Cloudflare Dashboard 發布的,通過 Cloudflare Dashboard 所做的編輯將會被你本地的代碼和配置覆蓋
輸入 y , 正常會打開瀏覽器讓你授權,授權即可,我這裡因為已經部署過了,所以沒有彈出來
- 給剛剛部署好的
Workers添加一個域名
等待域名生效就可以正常使用了,一般來說在伺服器上修改 /etc/docker/daemon.json,配置一下你剛搭建好的源地址就行
"registry-mirrors": [
"https://hammal.example.com"
]
我在Mac 上使用的是 Orbstack,則需要在軟體中直接配置
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://remrin.dev/posts/dev/docker