.Net Core:Docker无法拉取mcr.microsoft.com相关镜像解决办法

今天在教同事Docker简单部署Asp.Net Core项目,pull镜像时突然出现下图中的错误:

image

因为微软在 2018 年五月之后,只会将相关镜像打包发布到 MCR 上。但是 MCR 对国内用户不太友好,以前只是慢点就忍了,现在直接超时就不能忍了。

在网上找了各种解决办法,有配置镜像加速器的,有改DNS地址的,统统不管用。

后面找到了下面两种方法,亲测可用。

一、使用 docker-mcr

docker-mcr是一位爱心人士做的加速器,打包成了dotnet工具,使用起来非常方便。

1、服务器安装了.net core3.1 sdk

我的服务器是Centos,下面附上安装命令:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

sudo yum install dotnet-sdk-3.1

2、安装docker-mcr工具:

dotnet tool install newbe.mcrmirror -g

3、拉取镜像

docker-mcr工具使用起来也非常简单:docker-mcr -i 镜像仓库:版本,例如要拉取 mcr.microsoft.com/dotnet/aspnet:3.1

docker-mcr -i mcr.microsoft.com/dotnet/aspnet:3.1

二、通过阿里云容器镜像服务构建自己的镜像库

这种方法要比第一种方法稍微复杂一点。

1、在自己的Github新建一个仓库存放Dockerfile文件。

image

可以参考:https://github.com/dotnetboy/mcr-images

2、在阿里云开容器镜像服务,个人实例。

image

3、进到个人实例 — 镜像仓库 — 创建镜像仓库 — 绑定代码源(github)

image

image

image

4、进入镜像仓库 — 点击左边的构建 — 添加构建规则 — 立即构建

image
image
image

不出意外,等待30s左右后就会构建成功。

这个时候,你就可以去你自己的仓库地址拉取代码了。

image

image

这种方法虽然有点麻烦,但毕竟是自己的用着也放心一点。

posted @ 2022-04-02 17:07  畅饮无绪  阅读(1498)  评论(1编辑  收藏  举报