上一次手动制作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
但是这些镜像都太大了,我们下次来个优化,把镜象做小。