docker容器使用yum安装命令提速
在使用Dockerfile创建Docker镜像时,使用yum安装缓慢。Dockerfile内容如下:
1
2
3
4
5
|
# 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
|
分析原因:
由于默认Docker基础镜像源及yum源都是连接国外的地址,在国内访问会比较缓慢。
解决办法
修改yum源,这些使用了阿里云的yum源,从阿里云下载yum源配置文件:
1
|
$ wget -O ./CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
|
修改方法
重命名为CentOS-Base.repo,将修改好的 CentOS-Base.repo 复制到当前Docker创建上下文目录 中(因为Dockerfile只可以操作同一上下文目录的文件),
然后在Dockerfile中使用 COPY
命令将 CentOS-Base.repo 拷贝到目标基础镜像的 /etc/yum.repos.d/CentOS-Base.repo 目录下。
1
2
3
4
|
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
# 生成缓存
RUN yum clean all
RUN yum makecache
|
经过yum源修改后,Dockerfile创建Docker镜像速度快了很多。
构建centos新镜像
1
2
3
4
5
6
7
8
9
10
11
12
|
$ docker pull centos:8
$ docker run -it centos:8
[root@2e1f95f9020c /]# cd /etc/yum.repos.d/
# 清空CentOS-Base.repo,将https://mirrors.aliyun.com/repo/Centos-8.repo内容复制到里面
# vi CentOS-Base.repo,使用指令:.,$d,将下载内容复制到里面
# 构建yum缓存
[root@2e1f95f9020c yum.repos.d]# yum makecache
# 退出
[root@2e1f95f9020c yum.repos.d]# exit
# commit新镜像
$ docker commit -m='change yum source' -a 'lienhui68' 2e eh/centos:8
sha256:617f597d99093c90f6b937e10bd73c4719c0f9b0869af889ee15b33ff5c31895
|
上传镜像到阿里云私有仓库
1
2
3
4
5
6
7
8
9
10
11
12
|
# 登录阿里云Docker Registry
$ docker login --username=13681xxx426 registry.cn-hangzhou.aliyuncs.com
Password:
Login Succeeded
# 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。您可以在访问凭证页面修改凭证密码。
# 从Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/lienhui68/centos:[镜像版本号]
# 将镜像推送到Registry
# 打tag
$ docker tag 61 registry.cn-hangzhou.aliyuncs.com/lienhui68/centos:8
# 推送
$ docker push registry.cn-hangzhou.aliyuncs.com/lienhui68/centos:8
|