2018/11/15 Supermin5
supermin工具可以在两种模式下使用,即准备一个小型超级设备,这是在构建系统上完成的。并构建,它采用supermin设备并构建一个完整的可引导设备,该设备在最终用户的系统上完成。
Supermin不需要以root身份运行,通常不 应该以root身份运行。它不会影响主机系统或主机系统上安装的软件包。
准备模式
--prepare在给定的输出目录中创建微小的supermin设备。您给它一个要安装的软件包列表,supermin将自动找到依赖项。必须在主机上安装软件包列表。
例如:
supermin --prepare bash coreutils -o supermin .d
创建一个包含“bash”和 “coreutils”包的supermin设备。具体来说,它在目录supermin.d中创建了一些文件 。该目录是 supermin设备。(参见下面的“ 超级电器”)。
旨在将--prepare步骤在中央构建机器上完成,并将supermin设备分发给最终用户(这很容易,因为supermin设备非常小)。
建立模式
--build(以前是一个名为“supermin-helper”的独立程序)从supermin设备构建完整的设备:
supermin --build --format ext2 supermin .d -o appliance .d
这将创建名为appliance.d / kernel, appliance.d / root等的文件,这是一个完整大小的可启动设备。
在构建需要之前,最后一秒的最终用户计算机上的--build步骤是完成的。必须在最终用户的计算机上安装supermin设备中的软件包(在准备超级设备时指定的软件包)。
构建和缓存
通常,您希望仅在需要时在最终用户计算机上重建设备。Supermin有一些额外的选项可以让这更容易:
超级 - 建造\
- if -newer --lock / run / user / ` id -u` /supermin.lock \
--format ext2 supermin.d -o appliance.d
如果多个程序并行运行此命令,则实例将等待锁定文件。如果完整设备不存在或者它比输入文件和主机包数据库旧,则仅重建完整设备。
请注意,锁文件不得存储在-o 目录中。
套餐
“包”是指RPM, Debian,(等)包,例如。“coreutils”,“perl”。
在所有情况下,supermin只能构建一个与主机相同的发行版,版本和体系结构的超级设备。它并 没有做跨版本。
# supermin5 -v --prepare bash coreutils -o supermin.d 镜像预安装的软件包
# supermin5 -v --build --format chroot supermin.d -o appliance.d 镜像预安装的软件包
# echo 7 > appliance.d/etc/yum/vars/releasever 指明镜像版本
# tar --numeric-owner -cpf centos-7.tar -C appliance.d . 备份
# cat centos-7.tar | docker import - centos/centos-7:latest 导入tar包到docker镜像仓库
在容器 server 节点,使用 supermin5 命令(若命令不存在,则自己安装)构建名为centos-7
的 centos7 系统 docker 镜像,镜像预装 yum、net-tools、initscripts 和 vi 命令。构建完成后提
交镜像至容器仓库,并查看此镜像。依次将操作命令及返回结果以文本形式提交到答题框。
[root@server ~]# supermin5 -v --prepare bash yum net-tools initscripts vi coreutils -o
supermin.d
[root@server ~]# supermin5 -v --build --format chroot supermin.d -o appliance.d
[root@server ~]# echo 7 > appliance.d/etc/yum/vars/releasever
[root@server ~]# tar --numeric-owner -cpf centos-7.tar -C appliance.d .
[root@server ~]# cat centos-7.tar | docker import - 10.0.6.126:5000/centos-7
sha256:75b27ee7851e297faa2a085c7dac3c0f25bc4ac63949b04616fa3d247e52d007
[root@server ~]# docker images centos-7
REPOSITORY TAG IMAGE ID
CREATED SIZE
10.0.6.126:5000/centos-7 latest 75b27ee7851e 50 seconds ago
261.5 MB
-f 格式
- 格式化格式
(仅限构建模式)
选择完整设备的输出格式。
没有默认值。使用--build时,必须指定 --format选项。
可能的格式是:
chroot环境
主机文件系统中的目录树。
文件系统树被写入 OUTPUTDIR(即-o选项)。
这被称为“chroot”,因为之后您可以将chroot(1)逐字地放入此目录中,尽管使用容
器技术(LXC等)更好
。
在此模式下不会生成内核,initrd或dtb,因为假定您将使用主机内核运行设备。
输出内核写入OUTPUTDIR /内核,设备树(如果使用)写入OUTPUTDIR / dtb,一个小的initramfs可以将设备挂载到OUTPUTDIR / initrd,ext2文件系统映像写
入 OUTPUTDIR / root。(哪里OUTPUTDIR由-o 选项指定。
EXT2
一个ext2文件系统磁盘映像。
文件系统(OUTPUTDIR / root)的默认大小为4 GB (另请参阅--size选项)。