封尘网

让学习成为一种习惯!

在Centos7系统上制作一个7系的Docker镜像

上一次手动制作Docker镜像教程是在Centos6.5系统上实现的,利用febootstrap工具制作;

地址: https://www.58jb.com/html/66.html

但是在Centos7系统上无法使用Yum来安装febootstrap工具,如果确实要安装也可以,只需要在Centos6系统上把相关的rpm包复制到Centos7系统中;

这里不再作介绍了,这里直接配置一个YUM源来实现安装;

1、由于方便我直接使用公司内部的一个Yum源地址;很简单只是把Centos7的光盘放到Web上面;

[root@docker yum.repos.d]# curl -O  http://192.168.18.53/repo7/centos7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   137  100   137    0     0  39515      0 --:--:-- --:--:-- --:--:-- 45666

查看配置文件

[root@docker yum.repos.d]# cat centos7.repo
[c6-media]
name=CentOS-local
baseurl=http://192.168.18.53/repo7
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@docker yum.repos.d]# ll
total 8
-rw-r—r— 1 root root 137 Mar 14 23:29 centos7.repo
-rw-r—r— 1 root root 2433 Mar 14 23:26 yum.tar.g

2、在当前shell窗口中定义两个变量;并创建对应的目录:

export centos_root=/centos7-docker
export rpm_repo=http://192.168.18.53/repo7/

创建目录:

mkdir /centos7-docker

3、把yum安装到上面创建的目录下,把自动把依赖包都安装;

yum -y --installroot=${centos_root} install yum

查看一下此时的目录变化:

4、复制一个shell环境配置,不然登陆系统后shell前面就显示为:bash-4.2#

未复制环境配置前:切到目录后的情况;

[root@docker ~]# chroot ${centos_root} /bin/bash
bash-4.2# exit

我喜欢复制一下:

cp /etc/skel/.bash* /centos7-docker/root/
[root@docker ~]# chroot ${centos_root} /bin/bash
[root@docker /]# exit

5、退出上面切入的shell环境,打包目录为镜像:

[root@docker ~]# tar -C ${centos_root} -c . | docker import - centos7
sha256:8560c16b659516caa3ab3d3c9a9d47772ca103b85d06dc7eaa0a57578206de63

查看镜像

[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos7             latest              8560c16b6595        10 minutes ago      281.5 MB
centos7.2           latest              d9e558e83077        44 hours ago        313.8 MB

6、可以看到上面的centos7就是我们刚制作的Centos7的一个基础镜像;

如果需要这些命令就要添加一个相关的包到基础镜像;

只需要在创建镜像时的安装命令中添加包名即:

yum -y --installroot=${centos_root} install yum iputils iproute procps-ng

但是这些镜像都太大了,我们下次来个优化,把镜象做小。