对标OpenClaw,版国产“小龙虾” WorkBuddy正式上线了!
前言
今天我们来聊聊一个非常实用的技术操作:如何利用麒麟V10操作系统的ISO文件,亲手构建出一个可用的Docker镜像。整个过程基于Docker 20.10.7版本,步骤清晰,咱们一步步来。
构建 yum 离线源
万事开头难,但第一步往往最简单。要构建镜像,首先得有个可靠的软件源。
挂载 ISO 文件
首先,把准备好的麒麟服务器版ISO文件挂载到系统目录。命令很简单:
mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media
添加离线 repo 文件
挂载成功后,接下来需要告诉系统去哪里找安装包。在/etc/yum.repos.d/目录下创建一个名为kylin-local.repo的文件,并把下面的配置内容加进去:
[kylin-local] name = Kylin Local baseurl = file:///media/ gpgcheck = 0 enabled = 1
这样一来,系统就会把刚刚挂载的ISO当作本地的软件仓库了。
生成元数据缓存
配置好仓库,最后一步是刷新一下本地缓存,确保系统能识别这个新源。执行命令:
dnf clean all && dnf makecache
至此,一个完整的离线Yum源就搭建好了,为后续安装系统扫清了障碍。
构建系统环境
有了软件源,我们就可以着手准备一个最精简的系统环境,作为未来Docker镜像的“地基”。
创建系统安装目录
先创建一个目录,用来存放即将安装的最小化系统。命令如下:
mkdir -p /opt/kylin-minimal
安装最小系统
关键步骤来了。使用DNF包管理器,将“Minimal”这个最基础的软件包组安装到我们指定的目录:
dnf groupinstall “Minimal” --installroot /opt/kylin-minimal
这个命令会在/opt/kylin-minimal下构建出一个独立的、不干扰宿主机的根文件系统。
验证系统环境
安装是否成功,得进去看看才知道。使用chroot命令切换到新系统的根目录:
chroot /opt/kylin-minimal
然后执行ll命令查看目录结构。如果看到类似下面的输出,恭喜你,最小系统环境已经妥了:
[root@node0 /]# ll total 16 lrwxrwxrwx 1 root root 7 Apr 2 2021 bin -> usr/bin dr-xr-xr-x 7 root root 4096 Jan 3 08:58 boot drwxr-xr-x 2 root root 42 Jan 3 08:57 dev drwxr-xr-x 88 root root 8192 Jan 3 08:58 etc drwxr-xr-x 2 root root 6 Apr 2 2021 home lrwxrwxrwx 1 root root 7 Apr 2 2021 lib -> usr/lib lrwxrwxrwx 1 root root 9 Apr 2 2021 lib64 -> usr/lib64 drwxr-xr-x 2 root root 6 Apr 2 2021 media drwxr-xr-x 2 root root 6 Apr 2 2021 mnt drwxr-xr-x 2 root root 6 Apr 2 2021 opt dr-xr-xr-x 2 root root 6 Apr 2 2021 proc drwxr-xr-x 2 root root 140 Jan 3 08:59 root drwxr-xr-x 16 root root 281 Jan 3 08:56 run lrwxrwxrwx 1 root root 8 Apr 2 2021 sbin -> usr/sbin drwxr-xr-x 2 root root 6 Apr 2 2021 srv dr-xr-xr-x 2 root root 6 Apr 2 2021 sys drwxrwxrwt 2 root root 6 Jan 3 08:58 tmp drwxr-xr-x 12 root root 192 Jan 3 08:55 usr drwxr-xr-x 19 root root 332 Jan 3 08:56 var
构建 docker 镜像
地基打好了,现在开始盖房子——把准备好的系统环境打包成Docker镜像。
打包系统安装目录
首先,把/opt/kylin-minimal这个完整的目录结构打包成一个tar归档文件:
tar -C /opt/kylin-minimal -cvpf /opt/kylin-minimal.tar .
注意命令最后的那个点,它代表当前目录,确保把目录下的所有内容都打包进去。
创建镜像
接下来就是点睛之笔。根据Docker官方文档,从零构建镜像主要有两种方式:FROM scratch和使用tar包。前者创建的是一个完全空白的镜像,而我们采用的正是后者——基于tar包构建。
通过一个管道操作,将打包好的tar文件直接导入Docker,生成镜像:
cat /opt/kylin-minimal.tar | docker import - kylin-minimal:v10
这条命令会创建一个名为kylin-minimal、标签为v10的本地Docker镜像。
查看镜像
最后,用熟悉的命令确认一下成果:
docker images ls -a
如果一切顺利,你应该能在镜像列表中看到它,类似这样:
REPOSITORY TAG IMAGE ID CREATED SIZE kylin-minimal v10 4746e82d9656 1 days ago 2.0GB
瞧,一个基于麒麟V10的Docker镜像就诞生了。整个过程从搭建离线源开始,到安装最小系统,再到最终打包成镜像,环环相扣,逻辑清晰。希望这个指南能帮你顺利搞定自定义镜像的构建。
