.Net Core:Docker無法拉取mcr.microsoft.com相關映象解決辦法

暢飲無緒發表於2022-04-02

今天在教同事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

這種方法雖然有點麻煩,但畢竟是自己的用著也放心一點。

相關文章