专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Docker加速镜像

Docker加速镜像

更新时间:2021-12-24 10:53:51 来源:赢咖4 浏览1449次

前言

由于众所周知的原因,在国内拉取国外的docker镜像时,速度会很慢,甚至失败。比如拉取dotnet core的镜像。

比如以下两个镜像,拉取的时候非常慢

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

既然是网络原因,那么就可以通过以下两种方式解决

1.国内镜像仓库

2.从国外镜像仓库下载镜像上传到国内镜像仓库

配置国内镜像仓库

仓库列表

可自行搜索关键字docker国内镜像源寻找

配置方法

在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

从国外镜像仓库下载镜像上传到国内镜像仓库

前提

有一台访问主流镜像仓库速度快的境外服务器,安装好docker

开通阿里云的容器镜像仓库服务

步骤

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命令把镜像关联到镜像仓库,用到的参数是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中使用了,速度超快,如下面的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"]

最后

给出两个dotnet core相关的镜像地址

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

以上就是关于“Docker加速镜像”的介绍,大家如果想了解更多相关知识,不妨来关注一下赢咖4的Docker菜鸟教程,里面的内容丰富,由浅到深,适合没有基础的朋友学习,相信对大家会有所帮助的。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>