
如何加速 Kafka 鏡像拉取用 public-image-mirror 分鐘級拉完 Docker 鏡像的完整指南【免費下載鏈接】public-image-mirror很多鏡像都在國外。比如 gcr 。國內下載很慢需要加速。致力于提供連接全世界的穩定可靠安全的容器鏡像服務。項目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirrorApache Kafka 的官方鏡像放在海外源站國內經常 Docker 鏡像拉取慢。public-image-mirror 是 DaoCloud 維護的公開容器鏡像同步服務在鏡像名前加一個加速前綴就能把 Kafka 鏡像加速到分鐘級完成不用改任何部署文件。拉取慢是什么體驗 周四晚上準備演示環境docker pull 拉一個 Kafka 鏡像跑了四十分鐘速度始終在個位數的 KB/s 打轉最后直接超時中斷。整條流水線卡在這一步后面的集成測試和發布計劃全部順延。有時候只能等到深夜再試或者換一條網絡線路。集群場景更糟某個節點反復拉不到鏡像Pod 一直停在 ImagePullBackOff擴出來的機器等于白擴。慢的根源很直接很多公開鏡像存放在海外 registry比如 gcr.io跨境鏈路上丟包、限速都常見。這個鏡像同步服務能做什么public-image-mirror 的定位是源倉庫的鏡像它和源站最關鍵的約定是所有鏡像的哈希sha256與源站一致。所以你拉到的內容不會變成同名不同版這一點和那些內容不可信、哈希對不上的中轉站不一樣。它采用懶加載你的請求打到服務上緩存命中就直接返回未命中就觸發一次同步任務從源站取回內容再寫入緩存。因果鏈很清楚首次拉取要等同步完成所以偏慢之后命中緩存就快了。緩存本身也講周期內容只保留 30 天Manifest 內存緩存 1 小時tag 更新后大約一小時才會同步新內容。這和自己改 registry 地址的差別在維護成本。自建轉發節點每接一個新鏡像都要搭節點、維護鏈路、人工核對哈希。用這個服務你只需要在鏡像名前加前綴。支持范圍寫在 allows.txt 里一千三百多條白名單規則服務每天檢查同步情況擴范圍靠增白名單條目全程不改代碼。下圖把一次拉取的路徑畫出來三步拉通 Kafka 鏡像第一步 查白名單確認鏡像在列一條 grep 確認目標倉庫在白名單里grep wurstmeister allows.txt輸出 docker.io/wurstmeister/kafka 即在列。allows.txt 里還有一條通配規則 docker.io/*所以 docker.io 下大多數公開鏡像都能直接走前綴方式。第二步 給鏡像名加上加速前綴這一步不用敲命令把鏡像名按下面格式改寫即可原鏡像docker.io/wurstmeister/kafka:3.9.0加速寫法m.daocloud.io/docker.io/wurstmeister/kafka:3.9.0另一種寫法是前綴替換把 docker.io 換成 docker.m.daocloud.io。README 更推薦加前綴因為 gcr.io、quay.io 這類源站沒有對應的替換域名前綴方式對 11 個源站通用。第三步 拉取并驗證版本拉完用容器內自帶的工具核對版本號docker pull m.daocloud.io/docker.io/wurstmeister/kafka:3.9.0 docker run --rm m.daocloud.io/docker.io/wurstmeister/kafka:3.9.0 kafka-topics.sh --version第二條輸出 3.9.0 即驗證通過。如果首次拉取偏慢稍等再試那是后臺同步還在進行。進階玩法與常見坑配一次 讓整臺機器默認走加速源 ??逐條改鏡像名容易漏你可以在 Docker 客戶端配全局鏡像把下面內容寫進 /etc/docker/daemon.json 后重啟 Docker{ registry-mirrors: [ https://docker.m.daocloud.io ] }配置只對 docker.io 生效不要拿它加速 gcr.io 這類別的源站README 特意提醒過這一點。Kubernetes 集群可以按 README 的寫法改每個節點的 containerdPodman 的 registries.conf 則支持一次給 gcr.io、ghcr.io 等多個源站配鏡像。內網場景還可以再套一層本地緩存部署文檔在 docs/local-cache/。大鏡像提前拉一遍預熱 因為首次請求會觸發同步任務大鏡像第一次拉最慢。正式部署前先把鏡像拉一遍上線時它已經在緩存里。同步隊列狀態頁能看到最近的同步動態記錄只保留 1 小時。README 也建議把拉取任務放在北京時間凌晨 1 點到 7 點的閑時窗口其他時段比較擁擠。三個高頻誤區誤區現象背后的機制registry-mirrors 能加速所有源站配完 docker.io 后 gcr.io 的鏡像照樣慢每個源站獨立配置docker 的 registry-mirrors 只認 docker.io其他源站要換成對應前綴或替換域名latest 標簽總是最新拉到的還是舊內容Manifest 內存緩存 1 小時tag 更新后新內容有同步延遲建議用 sha256 摘要或固定版本號緩存一次有效一個月沒拉的鏡像再拉又慢了緩存內容只保留 30 天過期后需要重新同步參與項目新增鏡像或新的前綴替換規則提 issue前綴規則是人工配置的靠用戶反饋擴充。改進校驗腳本向 hack/ 提 PR里面就是白名單校驗、規則格式化這類同步維護腳本。提需求前先自測在倉庫根目錄運行bash hack/verify-allows.sh allows.txt docker.io/wurstmeister/kafka返回 0 表示白名單已覆蓋。把前綴加到鏡像名上Kafka 鏡像拉取慢這件事就有了標準解法。同步、校驗和緩存過期都交給服務本身協議是 Apache-2.0 開源許可。支持的源站列表與每種場景的完整配置見 README.md。【免費下載鏈接】public-image-mirror很多鏡像都在國外。比如 gcr 。國內下載很慢需要加速。致力于提供連接全世界的穩定可靠安全的容器鏡像服務。項目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考