無需VPS,使用從新打tag的方式,拉取、轉存mcr.microsoft.com的鏡像

docker的都知道鏡像加速,經過配置阿里雲、騰訊雲的鏡像源確實能夠大幅提高docker pull的效果,但對於某些不經常使用或新版的鏡像卻收效甚微。git

好比最近想要部署私有ExceptionLess服務,它的dockerfile使用了mcr.microsoft.com/dotnet/core/sdk:2.2.401mcr.microsoft.com/dotnet/core/aspnet:2.2,這兩個鏡像拉取很是慢,只能使用手動tag的方式來解決。docker

若是你有一臺國外的VPS,那很簡單;只需執行docker pulldocker logindocker tagdocker push就OK了。無奈個人VPS到期了,只能另尋它法,google以後從這篇文章找到靈感:使用從新打 tag 的方式,拉取 k8s.gcr.io 的鏡像bash

使用第三方的CI、CD服務push鏡像到國內私有倉庫中解決docker pull過慢的問題,本例的CI-CD使用的是travis-ci,因爲本身使用了騰訊雲的容器服務,所以私有庫使用了騰訊雲提供的免費鏡像倉庫。fetch

  • 首先,去騰訊雲中建立保存image的倉庫

image.png

  • 其次,訪問travis-ci,並受權其對本身git庫的訪問權限(隨便什麼倉庫都行,由於咱們並不須要使用裏面的代碼)
  • 參照騰訊雲提供的鏡像使用指引,編寫.travis.yml腳本文件

image.png
個人腳本文件以下ui

language: bash
services:
  - docker
sudo: required
branches:
  only:
    - master
script:
  - docker pull mcr.microsoft.com/dotnet/core/sdk:2.2.401
  - docker pull mcr.microsoft.com/dotnet/core/aspnet:2.2

after_success:
  #登陸registry的用戶名是您的騰訊雲的帳號ID,密碼是您開通鏡像倉庫服務時設置的密碼
  - sudo docker login --username=[ID] --password=[密碼] ccr.ccs.tencentyun.com
  - sudo docker tag mcr.microsoft.com/dotnet/core/sdk:2.2.401 ccr.ccs.tencentyun.com/dotnet-core/sdk:2.2.401
  - sudo docker tag mcr.microsoft.com/dotnet/core/aspnet:2.2 ccr.ccs.tencentyun.com/dotnet-core/aspnet:2.2
  - sudo docker push ccr.ccs.tencentyun.com/dotnet-core/sdk:2.2.401
  - sudo docker push ccr.ccs.tencentyun.com/dotnet-core/aspnet:2.2
  • travis-ci的首頁上,任意選擇一個倉庫,而後在More OptionsTrigger buildCUSTOM CONFIG中粘貼寫好的.travis.yml腳本並點擊Trigger custom build

image.png

  • 稍等幾分鐘便可在job log中看到腳本的執行結果

image.png

相關文章
相關標籤/搜索