2018 年五月之后,微软将后续发布的所有 docker image 都推送到了 MCR (Miscrosoft Container Registry),但在中国大陆,它的速度实在是令人发指,本文将介绍一种方法来解决这个问题。

基本思路

MCR 团队已经决定尝试一些方案为此提速,相关的讨论罗列在这个issue中。我也将会持续跟踪这个issue,但谁也不知道什么时候会完成。

因此,笔者决定在 Github 上运用 Github Action 来自动将 MCR 上的镜像推送到国内阿里云的杭州节点。这样便可以实现中国大陆快速下载的目的。

如何使用

假如现在,你想要 pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

那么只需要将其中的 mcr.microsoft.com/dotnet/core 替换为 registry.cn-hangzhou.aliyuncs.com/newbe36524

那么你就可以得到 registry.cn-hangzhou.aliyuncs.com/newbe36524/aspnet:3.1-buster-slim

另外,由于 Dockerfile 当中一般使用的是 mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

因此,我们可以使用 docker tag 命令进行重新标记。

那么,总体的脚本就如下所示:

 
bash
docker pull registry.cn-hangzhou.aliyuncs.com/newbe36524/aspnet:3.1-buster-slim
docker tag newbe36524/aspnet:3.1-buster-slim mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

这样你就成功的在本地得到了 mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim 镜像。

为什么有一些还是 pull 不了

笔者并不知道所有人的需求,因此,如果有一些镜像未进行同步,您可以在以下任一仓库中提交 issue。笔者将进行调整:

说点代码吧

其实真没啥好说的,要做到同步,只需要做到以下几点:

  • 了解一下如何使用 Github Action 进行自动化构建
  • 了解一下 docker 的 login/tag/pull/push 命令
  • 为了避免编写 Github Action 定义文件的重复劳动,编写一个脚本来自动生成

那么就可以完成这项工作了。整个代码库只有6K。

最后,但是最重要

最近作者正在构建以反应式Actor模式事件溯源为理论基础的一套服务端开发框架。希望为开发者提供能够便于开发出“分布式”、“可水平扩展”、“可测试性高”的应用系统——Newbe.Claptrap

本篇文章是该框架的一篇技术选文,属于技术构成的一部分。如果读者对该内容感兴趣,欢迎转发、评论、收藏文章以及项目。您的支持是促进项目成功的关键。

当前项目已经快要发布 0.2 alpha 版本,欢迎参与讨论。

GitHub 项目地址:https://github.com/newbe36524/Newbe.Claptrap

Gitee 项目地址:https://gitee.com/yks/Newbe.Claptrap


文章作者: newbe36524
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 newbe36524 !

朋友,您可能是MCR的受害者的更多相关文章

  1. GraphQL漏洞案例之获取Facebook任意用户的朋友列表和部分支付卡详细信息

    Facebook有一个GraphQL endpoint,只能由Facebook的某些应用程序使用.需要用户(或页面)access_token来查询GraphQL endpoint. 这里可以将Face ...

  2. linux下配置matlab运行环境(MCR)

    在安装好的matlab下有MCR(MatlabCompilerRuntime)在matlab2011/toolbox/compiler/deploy/glnxa64下找到MCRInstaller.zi ...

  3. QQ空间/朋友圈类界面的搭建

    类似于QQ空间的布局主要是在说说信息.点赞.回复三大部分的自适应布局上. 当我们需要搭建类似QQ空间.微信朋友圈的界面的时候,可做如下操作: 创建一个对应的model类: 创建一个对应model类的f ...

  4. 2017《时间的朋友》罗振宇跨年演讲ppt

    2016年12月31日晚,罗辑思维的罗振宇将在深圳湾春茧体育馆进行2017<时间的朋友>跨年演讲,很多网友一直在找直播的地址还是没找到,现在ytkah就第一时间分享一些精彩ppt弥补网友的 ...

  5. Python微信-- 分享接口(分享到朋友圈、朋友、空间)

    生成JS-SDK权限验证的签名 获取signature(签名)首先要获得 1.#获得jsapi_ticket 2.#获取当前页面的url #获取当前页面的url url="{}://{}{} ...

  6. Apple Watch版微信来了 收发微信刷朋友圈不在话下

    昨晚果粉守了一夜的Apple Watch发布会,意料中的惊喜不少,最让人兴奋的是微信成为首批支持的应用.是的,在全球拥有4.68亿月活跃用户的微信怎么可能不第一时间入驻呢?之前我们就有聊过Apple ...

  7. UC浏览器 分享到朋友圈和微信好友 分类: JavaScript 2015-04-28 14:45 615人阅读 评论(1) 收藏

    用手机UC浏览器访问新浪微博,会注意到有这样的两个分享按钮: 在手机端浏览器里,点击分享按钮,就可以启动微信客户端并分享到微信.研究了下其源代码,存在这样的一个js:http://mjs.sinaim ...

  8. <把时间当做朋友>读书笔记

    这本书我早就看过,还想再来一遍 开始这一行动是看李萌在朋友圈晒101计划,每天健身,读书半小时之类的,我也想做点啥,那就每天睡前读书半小时吧,怎么坚持下去呢? 我不想晒到朋友圈里,那就晒给玉玉看吧, ...

  9. MWeb 2.0 测试版可以下载啦,这次是公开测试,感兴趣的朋友可以试试

    2.0 版是 MWeb 发布以来,最重要的一个版本.MWeb 自去年一月份发布以来,获得了很多朋友的建议,在此非常感谢!没有你们,2.0 版可能就不能出来!然后再次感谢 Producter: http ...

随机推荐

  1. python之Python内置函数一览表

    Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块. 如果你熟悉 Shell 编程,了解什么是 Shell 内置命令,那么你也很容易理解什么是 Python 内置函数 ...

  2. 弹性式数据集RDD

    弹性式数据集RDD ​ 一.RDD简介二.创建RDD        2.1 由现有集合创建        2.2 引用外部存储系统中的数据集        2.3 textFile & who ...

  3. centos7 git下载速度慢

    nslookup命令 yum -y install bind-utils [root@iZ1i4qd6oynml0Z ~]# nslookup github.global.ssl.fastly.Net ...

  4. 3.3 Go浮点型

    1.Go浮点型 Go 语言提供了两种精度的浮点数,float32 和 float64,编译器默认声明为float64 小数类型就是存放小数的,如1.2 0.005 -2.32 package main ...

  5. 使用基于MVC2模式创建新闻网站

    1.什么是MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示 ...

  6. WebApiClient性能参考

    1 文章目的 昨天写了走进WebApiClientCore的设计,介绍了WebApiClient的变化与设计之后,收到大家支持的.赞许的,还有好的建议和顾虑,比如WebApiClient性能怎么样,有 ...

  7. kali下一些代理工具的简单描述

    前言 最近几天了解了kali中一些代理工具的基本使用,做一个小小的总结,kali操作系统的官网为 www.kali.org,感兴趣的可以去官网下载镜像,如何安装这里就不在讲解了,百度有很多教程.新手这 ...

  8. poj3613 求经过n条边的最短路 ----矩阵玩出新高度 。

    For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a relay race usin ...

  9. getcomputedstyle和style的区别

    1.只读与可写getComputedStyle方法是只读的,只能获取样式,不能设置:而element.style能读能写,能屈能伸.2.获取的对象范围getComputedStyle方法获取的是最终应 ...

  10. 调用 start_kernel

    步骤 1 关闭中断.进入 SVC 模式 ENTRY(stext) THUMB( adr r9, BSYM(1f) ) @ Kernel is always entered in ARM. THUMB( ...