【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本

最近开发需要用到docker,如下图

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本

需要在docker 虚拟机启动时。自动执行一些脚本,如果在docekr虚拟机里面修改的话,重启后,不生效,这时修改修改docker里面的iso文件;

docker虚拟机需要的主要文件

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本


vmdk主要是磁盘文件,一些images,容器等,重启,或者依据vmdk重新创建虚拟机后这些images,容器文件不会消失;现在需要修改iso文件,boot2docekr.iso文件导出,导入到一个linux系统中如下图


【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本


第一步:解压出img文件;

将iso文件mout到本地,如下图:

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本


然后将这些文件拷贝到 /root/testiso/iso 目录下

进入boot目录下执行命令 xz -dc initrd.img | cpio -id

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本


第二步: 修改 展开后文件

展开后,需要修改/etc/rc.d/ 目录下的内容,完成虚拟机开机时自动执行脚本的

小编修改了/etc/rc.d/下的内容  加了一个脚本/c/Users/root/start.sh

脚本内容如下:

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本

路径/c/Users/root 为一个windows路径 通过虚拟启动前共享过去如下图

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本


/etc/rc.d/docekr 添加了一条内容,/c/Users/root/start.sh

如下图:

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本


第三步:打包 img文件

打包前先将 /root/testiso/iso/boot 下的initrd.img  isolinux vmlinuxz64 文件考出去;

在路径/root/testiso/boot/下执行命令

find . | cpio -c -o | xz -9 --format=lzma > ../initrd.img

在/root/testiso/ 下会生成新的initrd.img文件,将boot下文件清空,initrd.img文件,isolinux 文件,vmlinuxz64k考入boot文件。然后重新打包成iso文件,方法参考下一篇博客;

验证:

将新的boot2docekr2.iso 文件指定为test3启动文件,启动前后效果如下:


重新启动 test3 虚拟机后

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本

多了脚本里面的内容;

查看根目录 

【Linux/docker】 修改iso中img格式文件里的内容,开机自动执行脚本

多了一个/gaosong 目录.


版权所有,转载请注明出处!