目录

centos基础镜像更换yum源

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