无需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

相关文章
相关标签/搜索