docker鏡像加速

前言

因爲衆所周知的緣由,在國內拉取國外的docker鏡像時,速度會很慢,甚至失敗。好比拉取dotnet core的鏡像。
好比如下兩個鏡像,拉取的時候很是慢html

mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim
mcr.microsoft.com/dotnet/core/sdk:3.1-buster

既然是網絡緣由,那麼就能夠經過如下兩種方式解決docker

  1. 國內鏡像倉庫
  2. 從國外鏡像倉庫下載鏡像上傳到國內鏡像倉庫

配置國內鏡像倉庫

倉庫列表

因本人未驗證倉庫的有效性,這裏就不列出來了,可自行搜索關鍵字docker國內鏡像源尋找json

配置方法

在CentOS中能夠經過修改daemon配置文件/etc/docker/daemon.json來配置bash

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["鏡像倉庫"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

從國外鏡像倉庫下載鏡像上傳到國內鏡像倉庫

前提

  1. 有一臺訪問主流鏡像倉庫速度快的境外服務器,安裝好docker
  2. 開通阿里雲的容器鏡像倉庫服務

步驟

  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
  1. 查看鏡像信息,而且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命令把鏡像關聯到鏡像倉庫,用到的參數是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

由於個人鏡像倉庫裏已經有了這個鏡像,因此不會再次上傳網絡

使用

把鏡像上傳好以後,就能夠在Dockerfile中使用了,速度超快,以下面的Dockerfileapp

#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"]

最後

給出兩個dotnet core相關的鏡像地址(持續更新)ui

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

若有須要下載其餘鏡像,可留言,本人可幫忙上傳到阿里雲鏡像倉庫中this

相關文章
相關標籤/搜索