朋友,您可能是MCR的受害者
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 命令进行重新标记。
那么,总体的脚本就如下所示:
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