通过docker制作根文件系统rootfs包——筑梦之路

通过docker制作根文件系统rootfs包——筑梦之路 rootfsRoot File System根文件系统是Linux 系统中启动时挂载的第一个文件系统也是整个文件目录结构的起点挂载点为/。它包含了系统启动、运行和恢复所需的最基本文件和目录所有其他文件系统最终都会挂载到它的某个子目录下。本文以国产操作系统银河麒麟v10为例。1. 拉取镜像docker pull macrosan/kylin:v10-sp3-24032. 创建容器并进入docker run -itd --name rootfs --privileged macrosan/kylin:v10-sp3-2403 /bin/bash docker exec -it rootfs bash3. 安装工具# 可选 dnf install yum-utils vim -y4. 制作rootfs包# 新建目录 mkdir -p /root/rootfs # 安装需要的包 dnf --installroot/root/rootfs --releasever10 install vim-minimal rpm dnf curl wget -y ## 跨架构参考命令 dnf --installroot/root/rootfs --releasever10 --forcearchaarch64 install vim-minimal rpm dnf curl wget -y # 挂载虚拟文件系统 mount --bind /dev ~/rootfs/dev mount --bind /proc ~/rootfs/proc mount --bind /sys ~/rootfs/sys # 进入rootfs chroot /root/rootfs rpm -qa |grep vim # 退出并卸载虚拟文件系统 exit umount /root/rootfs/dev /root/rootfs/proc /root/rootfs/sys # 然后将目录打包拷贝就可以在其他地方使用 tar -cvzf rootfs.tar.gz rootfs5. 使用rootfs根文件系统制作一个base基础镜像Base镜像是一个没有父镜像FROM scratch或仅依赖极简系统的镜像它是所有应用镜像的“地基”。Docker Base镜像基础镜像是构建Docker 镜像的起点它提供了容器运行所需的最底层环境比如操作系统内核接口、基础库和包管理工具等。理解基础镜像对于构建安全、高效、可维护的容器镜像至关重要。Base镜像分为两类操作系统类如ubuntu、debian、fedora、centos等语言运行时类如python、openjdk、node、golang等。5.1 编写DockerfileFROM scratch MAINTAINER 筑梦之路434754018qq.com ARG ARCHx86_64 ADD /rootfs / RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-kylin history -c CMD [bash]# 解压到和Dockerfile同一个目录下 tar -zxvf rootfs.tar.gz # 构建镜像 docker build -f Dockerfile -t mykylin:v10 .5.2 使用验证docker run -it --name myos mykylin:v10 /bin/bash dnf install vim -y此处做个记录。