更新時(shí)間:2021-12-24 10:53:51 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2205次
由于眾所周知的原因,在國內(nèi)拉取國外的docker鏡像時(shí),速度會(huì)很慢,甚至失敗。比如拉取dotnet core的鏡像。
比如以下兩個(gè)鏡像,拉取的時(shí)候非常慢
mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim
mcr.microsoft.com/dotnet/core/sdk:3.1-buster
既然是網(wǎng)絡(luò)原因,那么就可以通過以下兩種方式解決
1.國內(nèi)鏡像倉庫
2.從國外鏡像倉庫下載鏡像上傳到國內(nèi)鏡像倉庫
倉庫列表
可自行搜索關(guān)鍵字docker國內(nèi)鏡像源尋找
配置方法
在CentOS中可以通過修改daemon配置文件/etc/docker/daemon.json來配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["鏡像倉庫"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
前提
有一臺(tái)訪問主流鏡像倉庫速度快的境外服務(wù)器,安裝好docker
開通阿里云的容器鏡像倉庫服務(wù)
步驟
1.使用docker pull命令下載鏡像
[root@104 ~]# docker pull mcr.microsoft.com/dotnet/core/sdk:3.1-buster
3.1-buster: Pulling from dotnet/core/sdk
d6ff36c9ec48: Pull complete
c958d65b3090: Pull complete
edaf0a6b092f: Pull complete
80931cf68816: Pull complete
7b9b87089c2a: Pull complete
4f2c2524f197: Pull complete
b7b0f8dc0c5c: Pull complete
Digest: sha256:1aa53e4fa32dbba836e64e7863955b6b2b165f3a4f8f8aeed648a249300fae07
Status: Downloaded newer image for mcr.microsoft.com/dotnet/core/sdk:3.1-buster
mcr.microsoft.com/dotnet/core/sdk:3.1-buster
2.查看鏡像信息,并且tag到阿里云鏡像倉庫
[root@104 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mcr.microsoft.com/dotnet/core/sdk 3.1-buster 9ab567a29502 2 weeks ago 708MB
[root@104 ~]# docker tag 9ab567a29502 registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/sdk:3.1-buster
如上命令,使用tag命令把鏡像關(guān)聯(lián)到鏡像倉庫,用到的參數(shù)是image id和倉庫地址,然后push
[root@104 ~]# docker push registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/sdk:3.1-buster
The push refers to repository [registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/sdk]
f506d7422ef0: Layer already exists
5188b84c74d0: Layer already exists
896ff95e1760: Layer already exists
e5df62d9b33a: Layer already exists
7a9460d53218: Layer already exists
b2765ac0333a: Layer already exists
0ced13fcf944: Layer already exists
3.1-buster: digest: sha256:1aa53e4fa32dbba836e64e7863955b6b2b165f3a4f8f8aeed648a249300fae07 size: 1800
因?yàn)槲业溺R像倉庫里已經(jīng)有了這個(gè)鏡像,所以不會(huì)再次上傳
使用
把鏡像上傳好之后,就可以在Dockerfile中使用了,速度超快,如下面的Dockerfile
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/sdk:3.1-buster AS build
WORKDIR /src
COPY ["DockerDemo/DockerDemo.csproj", "DockerDemo/"]
RUN dotnet restore "DockerDemo/DockerDemo.csproj"
COPY . .
WORKDIR "/src/DockerDemo"
RUN dotnet build "DockerDemo.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerDemo.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerDemo.dll"]
給出兩個(gè)dotnet core相關(guān)的鏡像地址
registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/sdk:3.1-buster
registry.cn-shenzhen.aliyuncs.com/dotnetcore-vincent/aspnet:3.1-buster-slim
registry.cn-shenzhen.aliyuncs.com/rabbitmq-vincent/rabbitmq:3.8.8
registry.cn-shenzhen.aliyuncs.com/dotnet-vincent/sdk:5.0
registry.cn-shenzhen.aliyuncs.com/dotnet-vincent/aspnet:5.0
以上就是關(guān)于“Docker加速鏡像”的介紹,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Docker菜鳥教程,里面的內(nèi)容豐富,由淺到深,適合沒有基礎(chǔ)的朋友學(xué)習(xí),相信對(duì)大家會(huì)有所幫助的。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)