今天在教同事Docker簡單部署Asp.Net Core項目,pull鏡像時突然出現下圖中的錯誤:
因為微軟在 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文件。
可以參考:https://github.com/dotnetboy/mcr-images
2、在阿里雲開容器鏡像服務,個人實例。
3、進到個人實例 — 鏡像倉庫 — 創建鏡像倉庫 — 綁定代碼源(github)
4、進入鏡像倉庫 — 點擊左邊的構建 — 添加構建規則 — 立即構建
不出意外,等待30s左右后就會構建成功。
這個時候,你就可以去你自己的倉庫地址拉取代碼了。
這種方法雖然有點麻煩,但畢竟是自己的用着也放心一點。