1. 無法拉取 gcr.io 鏡像?用魔法來打敗魔法

        共 526字,需瀏覽 2分鐘

         ·

        2022-02-18 01:35

        目前常用的 Docker Registry 公開服務(wù)有:

        • docker.io :Docker Hub 官方鏡像倉庫,也是 Docker 默認的倉庫

        • gcr.io、k8s.gcr.io :谷歌鏡像倉庫

        • quay.io :Red Hat 鏡像倉庫

        • ghcr.io :GitHub 鏡像倉庫

        當使用 docker pull 倉庫地址/用戶名/倉庫名:標簽 時,會前往對應(yīng)的倉庫地址拉取鏡像,標簽無聲明時默認為 latest, 倉庫地址無聲明時默認為 docker.io

        眾所周知的原因,在國內(nèi)訪問這些服務(wù)異常的慢,甚至 gcr.ioquay.io 根本無法訪問。

        解決方案:鏡像加速器

        針對 Docker Hub ,Docker 官方和國內(nèi)各大云服務(wù)商均提供了 Docker 鏡像加速服務(wù)。

        你只需要簡單配置一下(以 Linux 為例):

        sudo?mkdir?-p?/etc/docker

        sudo?tee?/etc/docker/daemon.json?<<-'EOF'
        {
        ??"registry-mirrors":?["鏡像加速器"]
        }
        EOF

        sudo?systemctl?daemon-reload
        sudo?service?docker?restart

        便可以通過訪問國內(nèi)鏡像加速器來加速 Docker Hub 的鏡像下載。

        不過這種辦法也只能針對 docker.io ,其它的倉庫地址并沒有真正實際可用的加速器(至少我目前沒找到)。

        解決方案:用魔法打敗魔法

        既然無法治本,那治治標還是可以的吧。

        若我們使用一臺魔法機器從 gcr.ioquay.io 等倉庫先把我們無法下載的鏡像拉取下來,然后重新上傳到 docker.io ,是不是就可以使用 Docker Hub 的鏡像加速器來下載了。

        鏡像倉庫遷移的功能,我這里采用了 Go Docker SDK ,整體實現(xiàn)也比較簡單。

        以需要轉(zhuǎn)換的 gcr.io/google-samples/microservices-demo/emailservice:v0.3.5 為例,使用方式:

        功能實現(xiàn)了,剩下的就是找臺帶有魔法的機器了。

        GitHub Actions 就是個好選擇,我們可以利用提交 issues 來觸發(fā)鏡像倉庫遷移的功能。

        workflow 的實現(xiàn)如下:

        實際的使用效果:

        只要執(zhí)行最終輸出的命令,就可以飛快的使用 Docker Hub 的加速器下載 gcr.ioquay.io 等鏡像了。

        最后

        本篇的實現(xiàn)已放在 GitHub :https://github.com/togettoyou/hub-mirror

        完~


        瀏覽 105
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 久久厕所偷拍视频 | 探花爱爱视频 | 五月色小说 | 古代禁伦h肉全文免费阅读 | 欧美日韩中文字幕一区二区三区 |