使用supermin制作CentOS的Docker镜像

需求

supermin 在Centos7 里面安装默认只能够构建Centos7 版本的基础镜像,如果想进行构建Centos6基础镜像需要对Linux系统进行稍微做一下修改,主要体现在yum的源方面。

CentOS7上安装supermin5

# yum install supermin5 supermin5-devel -y 
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * elrepo: hkg.mirror.rackspace.com
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 supermin5.x86_64.0.5.1.16-4.el7 将被 安装
---> 软件包 supermin5-devel.x86_64.0.5.1.16-4.el7 将被 安装
--> 正在处理依赖关系 rpm-build,它被软件包 supermin5-devel-5.1.16-4.el7.x86_64 需要
--> 正在检查事务
---> 软件包 rpm-build.x86_64.0.4.11.3-25.el7 将被 安装
--> 正在处理依赖关系 patch >= 2.5,它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在处理依赖关系 elfutils >= 0.128,它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在处理依赖关系 unzip,它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在处理依赖关系 system-rpm-config,它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在处理依赖关系 perl(Thread::Queue),它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在处理依赖关系 bzip2,它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在处理依赖关系 /usr/bin/gdb-add-index,它被软件包 rpm-build-4.11.3-25.el7.x86_64 需要
--> 正在检查事务
---> 软件包 bzip2.x86_64.0.1.0.6-13.el7 将被 安装
---> 软件包 elfutils.x86_64.0.0.168-8.el7 将被 安装
---> 软件包 gdb.x86_64.0.7.6.1-100.el7 将被 安装
---> 软件包 patch.x86_64.0.2.7.1-8.el7 将被 安装
---> 软件包 perl-Thread-Queue.noarch.0.3.02-2.el7 将被 安装
---> 软件包 redhat-rpm-config.noarch.0.9.1.0-76.el7.centos 将被 安装
--> 正在处理依赖关系 dwz >= 0.4,它被软件包 redhat-rpm-config-9.1.0-76.el7.centos.noarch 需要
--> 正在处理依赖关系 zip,它被软件包 redhat-rpm-config-9.1.0-76.el7.centos.noarch 需要
--> 正在处理依赖关系 perl-srpm-macros,它被软件包 redhat-rpm-config-9.1.0-76.el7.centos.noarch 需要
---> 软件包 unzip.x86_64.0.6.0-16.el7 将被 安装
--> 正在检查事务
---> 软件包 dwz.x86_64.0.0.11-3.el7 将被 安装
---> 软件包 perl-srpm-macros.noarch.0.1-8.el7 将被 安装
---> 软件包 zip.x86_64.0.3.0-11.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=========================================================================================================================================================================
 Package                                       架构                               版本                                            源                                大小
=========================================================================================================================================================================
正在安装:
 supermin5                                     x86_64                             5.1.16-4.el7                                    base                             550 k
 supermin5-devel                               x86_64                             5.1.16-4.el7                                    base                              14 k
为依赖而安装:
 bzip2                                         x86_64                             1.0.6-13.el7                                    base                              52 k
 dwz                                           x86_64                             0.11-3.el7                                      base                              99 k
 elfutils                                      x86_64                             0.168-8.el7                                     base                             279 k
 gdb                                           x86_64                             7.6.1-100.el7                                   base                             2.4 M
 patch                                         x86_64                             2.7.1-8.el7                                     base                             110 k
 perl-Thread-Queue                             noarch                             3.02-2.el7                                      base                              17 k
 perl-srpm-macros                              noarch                             1-8.el7                                         base                             4.6 k
 redhat-rpm-config                             noarch                             9.1.0-76.el7.centos                             base                              79 k
 rpm-build                                     x86_64                             4.11.3-25.el7                                   base                             146 k
 unzip                                         x86_64                             6.0-16.el7                                      base                             169 k
 zip                                           x86_64                             3.0-11.el7                                      base                             260 k

事务概要
=========================================================================================================================================================================
安装  2 软件包 (+11 依赖软件包)

总下载量:4.2 M
安装大小:11 M
Downloading packages:
(1/13): dwz-0.11-3.el7.x86_64.rpm                                                                                                                 |  99 kB  00:00:00     
(2/13): perl-Thread-Queue-3.02-2.el7.noarch.rpm                                                                                                   |  17 kB  00:00:00     
(3/13): perl-srpm-macros-1-8.el7.noarch.rpm                                                                                                       | 4.6 kB  00:00:00     
(4/13): patch-2.7.1-8.el7.x86_64.rpm                                                                                                              | 110 kB  00:00:00     
(5/13): elfutils-0.168-8.el7.x86_64.rpm                                                                                                           | 279 kB  00:00:00     
(6/13): rpm-build-4.11.3-25.el7.x86_64.rpm                                                                                                        | 146 kB  00:00:00     
(7/13): redhat-rpm-config-9.1.0-76.el7.centos.noarch.rpm                                                                                          |  79 kB  00:00:00     
(8/13): supermin5-devel-5.1.16-4.el7.x86_64.rpm                                                                                                   |  14 kB  00:00:00     
(9/13): unzip-6.0-16.el7.x86_64.rpm                                                                                                               | 169 kB  00:00:01     
(10/13): zip-3.0-11.el7.x86_64.rpm                                                                                                                | 260 kB  00:00:01     
(11/13): supermin5-5.1.16-4.el7.x86_64.rpm                                                                                                        | 550 kB  00:00:01     
(12/13): gdb-7.6.1-100.el7.x86_64.rpm                                                                                                             | 2.4 MB  00:00:24     
bzip2-1.0.6-13.el7.x86_64.rpm  FAILED                                          
http://mirrors.cqu.edu.cn/CentOS/7.4.1708/os/x86_64/Packages/bzip2-1.0.6-13.el7.x86_64.rpm: [Errno 12] Timeout on http://mirrors.cqu.edu.cn/CentOS/7.4.1708/os/x86_64/Packages/bzip2-1.0.6-13.el7.x86_64.rpm: (28, 'Connection timed out after 30001 milliseconds')
正在尝试其它镜像。
(13/13): bzip2-1.0.6-13.el7.x86_64.rpm                                                                                                            |  52 kB  00:00:00     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                     141 kB/s | 4.2 MB  00:00:30     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : unzip-6.0-16.el7.x86_64                                                                                                                             1/13 
  正在安装    : patch-2.7.1-8.el7.x86_64                                                                                                                            2/13 
  正在安装    : supermin5-5.1.16-4.el7.x86_64                                                                                                                       3/13 
  正在安装    : elfutils-0.168-8.el7.x86_64                                                                                                                         4/13 
  正在安装    : dwz-0.11-3.el7.x86_64                                                                                                                               5/13 
  正在安装    : gdb-7.6.1-100.el7.x86_64                                                                                                                            6/13 
  正在安装    : zip-3.0-11.el7.x86_64                                                                                                                               7/13 
  正在安装    : bzip2-1.0.6-13.el7.x86_64                                                                                                                           8/13 
  正在安装    : perl-srpm-macros-1-8.el7.noarch                                                                                                                     9/13 
  正在安装    : redhat-rpm-config-9.1.0-76.el7.centos.noarch                                                                                                       10/13 
  正在安装    : perl-Thread-Queue-3.02-2.el7.noarch                                                                                                                11/13 
  正在安装    : rpm-build-4.11.3-25.el7.x86_64                                                                                                                     12/13 
  正在安装    : supermin5-devel-5.1.16-4.el7.x86_64                                                                                                                13/13 
  验证中      : supermin5-devel-5.1.16-4.el7.x86_64                                                                                                                 1/13 
  验证中      : perl-Thread-Queue-3.02-2.el7.noarch                                                                                                                 2/13 
  验证中      : perl-srpm-macros-1-8.el7.noarch                                                                                                                     3/13 
  验证中      : bzip2-1.0.6-13.el7.x86_64                                                                                                                           4/13 
  验证中      : zip-3.0-11.el7.x86_64                                                                                                                               5/13 
  验证中      : redhat-rpm-config-9.1.0-76.el7.centos.noarch                                                                                                        6/13 
  验证中      : gdb-7.6.1-100.el7.x86_64                                                                                                                            7/13 
  验证中      : rpm-build-4.11.3-25.el7.x86_64                                                                                                                      8/13 
  验证中      : dwz-0.11-3.el7.x86_64                                                                                                                               9/13 
  验证中      : elfutils-0.168-8.el7.x86_64                                                                                                                        10/13 
  验证中      : supermin5-5.1.16-4.el7.x86_64                                                                                                                      11/13 
  验证中      : patch-2.7.1-8.el7.x86_64                                                                                                                           12/13 
  验证中      : unzip-6.0-16.el7.x86_64                                                                                                                            13/13 

已安装:
  supermin5.x86_64 0:5.1.16-4.el7                                                  supermin5-devel.x86_64 0:5.1.16-4.el7                                                 

作为依赖被安装:
  bzip2.x86_64 0:1.0.6-13.el7          dwz.x86_64 0:0.11-3.el7                   elfutils.x86_64 0:0.168-8.el7         gdb.x86_64 0:7.6.1-100.el7                        
  patch.x86_64 0:2.7.1-8.el7           perl-Thread-Queue.noarch 0:3.02-2.el7     perl-srpm-macros.noarch 0:1-8.el7     redhat-rpm-config.noarch 0:9.1.0-76.el7.centos    
  rpm-build.x86_64 0:4.11.3-25.el7     unzip.x86_64 0:6.0-16.el7                 zip.x86_64 0:3.0-11.el7              

完毕!

修改centos 定制源

拷贝一份yum配置文件

 cp /etc/yum.conf /home/yum.conf
 修改一下 releasever 改为 6
 sed -e -i 's/$releasever/6/g' /home/yum.conf

备份yum.repo.d 源

cp /etc/yum.repo.d /etc/yum.repo.d_bak
sed -e -i 's/^mirrorlist/#mirrorlist/g ;s/#baseurl/baseurl/g;s/$releasever/6/g;s/mirror.centos.org/mirrors.ustc.edu.cn/g' /etc/yum.repo.d/CentOS-Base.repo

创建镜像 (以下命令需要使用root运行)

# mkdir /home/centos6 -p 
# cd /home/centos6 
# supermin5 -v --prepare bash coreutils -o supermin.d --packager-config /home/yum.conf
可以安装一些 yum、vim 等, supermin5 -v --prepare bash coreutils -o supermin.d --packager-config /home/yum.conf
# supermin5 -v --build --format chroot supermin.d -o appliance.d
# echo 6 > appliance.d/etc/yum/vars/releasever

# tar --numeric-owner -cpf centos-6.tar -C appliance.d .
# cat centos-6.tar | docker import - registry.mychebao.com:5000/centos-6

查看镜像

docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
registry.mychebao.com:5000/centos-6   latest              766e94ff309a        About an hour ago   235MB

上传镜像到私有仓库

docker push registry.mychebao.com:5000/centos-6
The push refers to repository [registry.mychebao.com:5000/centos-6]
0cb07a03e3df: Pushed 
latest: digest: sha256:4f6f28a7d6aeefac72dd9457fd5d71ebf2d078958b2c08741d8f4796d78c5cf7 size: 528