前幾天各大鏡像站全部掛掉,拉取 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