在国内使用docker pull拉取mcr.microsoft.com相关镜像失败,即使用了镜像加速也不能解决,通过查找相关资料找到解决方法。本文主要介绍一下解决使用docker pull拉取.NET Core(C#)镜像慢或拉取失败的方法。

1、使用docker-mcr

docker-mcr 是一个 dotnet core global tool,使用之前需要先安装.NET Core 3.1 SDK

安装完执行如下命令:

dotnet tool install newbe.mcrmirror -g

安装完成后拉取镜像需要使用docker-mcr -i,例如,

docker-mcr -i mcr.microsoft.com/dotnet/sdk:6.0

2、使用囯内服务器镜像

可以使用docker pull将镜像拉取到国内服务器,之后在使用docker pull命令时,通过国内服务器地址拉取,例如,

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

3、使用 DockerHub 加速器

可以将mcr.microsoft.com上镜像拉取到本地,在推送到dockerhub,如此镜像加速器就可以起生效,拉取镜像可以使用如下命令:

docker pull newbe36524/aspnet:3.1-buster-slim
docker tag newbe36524/aspnet:3.1-buster-slim mcr.microsoft.com/dotnet/aspnet:3.1-buster-slim

参考文档:https://github.com/newbe36524/Newbe.McrMirror