解决Dockerfile方式创建Docker下载慢问题

最近在学习Docker,系统环境是CentOS7

1. 下载缓慢

在使用Dockerfile创建Docker镜像时,引用基础镜像和yum安装都很缓慢。Dockerfile内容如下:

[kanou@192 static_web]$ cat Dockerfile
# Version: 0.0.1
FROM centos:7.7.1908
MAINTAINER kanou "sample@163.com"
RUN yum update -y && yum install -y epel-release
RUN yum install -y nginx
#RUN echo 'Hi, I am in your container' > /usr/share/nginx/html/index.html
EXPOSE 80

2. 分析原因

由于默认Docker基础镜像源及yum源都是连接国外的地址,在国内访问会比较缓慢。

3. 解决方法

修改Dockerfile中基础镜像CentOS7的镜像加速器和yum源,但在Dockerfile要对这两个内容进行修改比较麻烦,
于是想到先在本地CentOS7系统先将镜像加速器和yum源的配置文件先修改好并拷贝到Dockerfile的上下文目录中,
在Dockerfile中将本地配置文件拷贝到Dockerfile的目标基础镜像中,达到修改目标基础镜像的加速器和yum源的目的。
操作步骤如下:
(1)修改基础镜像加速器,因为这些使用的是CentOS7,CentOS7可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:\

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://9an8eogo.mirror.aliyuncs.com"]
}
EOF

将修改好的 daemon.json 复制到当前Docker创建上下文目录 static_web 中(因为Dockerfile只可以操作同一上下文目录的文件),
然后在Dockerfile中使用 ADD 命令将 daemon.json 拷贝到目标基础镜像的 /etc/docker/daemon.json 目录下。

修改方法参考链接:https://cr.console.aliyun.com/cn-qingdao/instances/mirrors?accounttraceid=2a028b8d92834921b155ca96c3c5f3e7ytyw

(2)修改Docker DNS
修改 /etc/resolv.conf文件内容

# Generated by NetworkManager
search localdomain
nameserver 114.114.114.114
nameserver 8.8.8.8

(3)修改yum源,这些使用了阿里云的yum源,从阿里云下载yum源配置文件:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

将修改好的 CentOS-Base.repo 复制到当前Docker创建上下文目录 static_web 中(因为Dockerfile只可以操作同一上下文目录的文件),
然后在Dockerfile中使用 ADD 命令将 CentOS-Base.repo 拷贝到目标基础镜像的 /etc/yum.repos.d/CentOS-Base.repo 目录下。

修改方法参考链接:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11BXNk8Q

修改后的Dockerfile如下:

[kanou@192 static_web]$ cat Dockerfile
# Version: 0.0.1
FROM centos:7.7.1908
MAINTAINER kanou "zkanou@163.com"
ADD daemon.json /etc/docker/daemon.json
ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum clean all
RUN yum makecache
RUN yum update -y && yum install -y epel-release
RUN yum install -y nginx
#RUN echo 'Hi, I am in your container' > /usr/share/nginx/html/index.html
EXPOSE 80

经过镜像加速器和yum源修改后,Dockerfile创建Docker镜像速度快了很多。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值