如何制作docker基础镜像,docker必装镜像
1、重构文件系统
[root @ localhostliveos]# yum-yinstallsquashfs-tools
[root @ localhost img]# unsquashfssquashfs。img #的squashfs.img是只读的,必须复制并解压缩
[root@localhost LiveOS]# ls
rootfs.img
[root @本地主机LiveOS]# pwd
/data/img/squashfs-root/LiveOS
在目录中挂载[root @ localhostliveos]#装载rootfs.img/data/rootfs/#根文件系统。图片
[root @ localhostliveos]# CD/data/root fs/
[root@localhost rootfs]# ls
听众腰带bootdevetcfirmwareliblib 64 lostfoundmntmodulesprocootrouns听众腰带系统tmp usr变量
[ root @ localhost rootfs ] # find .-名称mdadm *。/run/mdadm。/usr/lib/systemd/system-shut down/mdadm。停工。/usr/lib/systemd/system/mdadm-last-resort @ .服务。/usr/lib/systemd/system/mdadm-grow-continue @ .服务。/usr/lib/systemd/system/mdadm-last-resort @ .计时器。/usr/lib/tmpfiles.d/mdadm.conf。/usr/share/auge as/lenses/dist/mdadm _ conf。八月。/usr/s听话的皮带/mdadm
确定[root @ localhost ~]# yumprovidesrpbuild #命令由哪个软件包提供
[root @ localhost x86 _ 64]# rpm 2 cpio mdadm-3。3 .2-2。El 7.1.x86 _ 64.rpmcpio-div # rpm软件包以备份文件格式打包
[root @ localhost root fs]# CP/root/rpm build/rpms/x86 _ 64/usr/s听话带/mdadm s听话带/mdadm #替换文件
[root @ localhost root fs]# mksquashfs squashfs-root squashfs。img #重新打包以生成squashfs.img
[root@node1 elk]# mkdir ISO
[root @ node 1 elk]# yum-yinstallcreaterepomkisofsisomd5 sum rsync
[ root @ node1elk ] #建议复制所有rsync-a-exclude=packages//-exclude=repo data//mnt/iso/#
[ root @ node1elk ] # yum安装-你.仅下载-下载目录=/root/test/#在指定路径上安装并安装指定的每分钟转数软件包
#必须在每次重新生成、添加或删除包树时运行
createrepo-grep odata/*-comps .XML。
#创建镜像
miso fs-o centos。iso-biso Linux/isolinux .听话的皮带-c isolinux/boot。卡特彼勒-非乳化-启动-启动-负载-尺寸4-启动-启动
2、自定义镜像
挂载/开发/cdrom/媒体
将/媒体下的文件同步到/ISO路径,但包装和报告数据文件夹除外
/usr/听话的皮带/rsync-a-exclude=packages//-exclude=repo data//media//iso/
在/ISO/文件夹下创建新的包文件夹和报告数据文件夹
mkdir-p/ISO/{包,报告数据}
rpm -qa /root/install.log #生成install.log
awk {打印$ 0 } /root/install。log xargs-ICP/media/packages/{ } .rpm/iso/packages /
将妙的配置为下载指定软件包列表(rpms_list.txt)中的所有依赖软件包
#!/听话的皮带/sh
对于" cat/root/rpms _ list.txt "中的行
德奥
“回声”下载一个文件,它是一个" denpendies"$ line
yum install-y -仅下载- -下载dir=/root/test/$ line
#或好吃的安装好吃的东西,然后再安装yumdownloader $line
道恩
#好吃搜索。因此或依赖的每分钟转数软件包
取决于妙的提供{。因此名称或名称}
#将软件包复制到指定目录
cp /root/test/* /ISO/Packages/
自定义isolinux.cfg文件
默认值一
提示1 #回车将跟踪默认条目,以防止重复重载
超时600
一级方程式
菜单标签^安装控制台
内核内核文件
appendlinuxinitrd=initrd。img研究所。不保存=所有仪器。第二阶段=高清:级别=OSinst.ks=HD3360级别=OS3360/ks .
二级方程式
菜单标签^安装屏幕
内核内核文件
appendlinuxinitrd=initrd。img研究所。不保存=所有仪器。第二阶段=高清:级别=OSinst.ks=HD3360级别=OS3360/ks .
菜单结束
安装数量是ks.cfg文件的位置;
#安装阶段2是介质的安装位置,高清:标签是介质标签,如CentOS7。这与用于生成后续国际标准化组织镜像文件的命令生殖图像的参数-V有关。
#高清:级别之后的所有值最好用后面使用的字符串替换,如CentOS7
更改自动安装配置文件
%包
@^web-server-environment
@base
@core
@java平台
@ python -网络
@网络服务器
关键工具
@{自定义软件包组的groupid}
%结束
创建修改的免费票文件
导航到/ISO目录,将*-x86_64-comps.xml文件复制到/ISO/repodata路径中,然后将其重命名为comps.xm
CP/media/repo data/*-x86 _ 64-comps.XML/iso/repo数据/comps。可扩展置标语言
#添加自定义rpm包
自定义软件包组的{groupid}
我的从属关系
真实的
真实的
python-webob。
基于rpms_list.txt分组请求拼接
#!/听话带/sh
对于“cat rpms_list.txt”中的行
德奥
echo $line /root/package.txt
黎明
#向指定环境添加自定义groupid
我们B-服务器-环境
基本web服务器
serverforservingstaticanddynamicinternetcontent .
30
基础设施
核心
我们B-服务器
自定义软件包组的{groupid}
切换到ISO/path并从comps.xml生成repodata包。请注意,如果添加了新包或更新了comps.xml文件,则必须重新生成repodata文件夹。
create repo-grep odata/comps . XML ./
创建ISO映像
创建一个ISO映像,注意参数的-V必须与上面的isolinux.cfg中的标签相匹配。
cd /ISO
genis oimage-joliet-long-vcentos 7-ocen tos . iso-biso Linux/isolinux。听话带-cislinux/boot.cat-no-emumux
#检查镜像MD5的值
植入体5 /ISO/CentOS.iso