docker镜像构建(基于ISO)

1. 前言

本文详细介绍如何基于kylin v10 ISO文件构建出docker image。系统环境如下:

bash 复制代码
dockder:        20.10.7
linux os:       kylinv 10 (GFB)
linux kernel:   4.19.90-52.23.v2207.gfb01.ky10.aarch64

2. 构建yum离线源

2.1. 挂载ISO文件

bash 复制代码
mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media

2.2. 添加离线repo文件

在/etc/yum.repos.d/下创建kylin-local.repo,并添加如下内容

bash 复制代码
[kylin-local]
name = Kylin Local
baseurl = file:///media/
gpgcheck = 0
enabled = 1

2.3. 生成元数据缓存

bash 复制代码
dnf clean all && dnf makecache

3. 构建系统环境

3.1. 创建系统安装目录

bash 复制代码
mkdir -p /opt/kylin-minimal

3.2. 安装最小系统

bash 复制代码
dnf groupinstall "Minimal" --installroot /opt/kylin-minimal

3.3. 验证系统环境

执行chroot /opt/kylin-minimal命令进入最小系统的根目录,执行ll命令查看目录结构。

bash 复制代码
[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
dr-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

如果显示以上目录结构,则说明最小系统环境安装成功。

4. 构建docker镜像

4.1. 打包系统安装目录

bash 复制代码
tar -C /opt/kylin-minimal -cvpf /opt/kylin-minimal.tar .

4.2. 创建镜像

bash 复制代码
cat /opt/kylin-minimal.tar | docker import - kylin-minimal:v10

根据官方文档介绍,从零构建镜像只有2种方式:FROM scratch和using tar。FROM scratch是构建一个空白的镜像,没有任何内容。而using tar是基于tar包构建的镜像。上述命令是从kylin-minimal tar包构建docker镜像。镜像名称为kylin-minimal,标签为v10。

4.3. 查看镜像

bash 复制代码
docker images ls -a
--------------------
REPOSITORY          TAG       IMAGE ID       CREATED      SIZE
kylin-minimal       v10       4746e82d9656   1 days ago   2.0GB

5. 参考资料

相关推荐
java_logo16 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
xbzb17 小时前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
打工仔折腾 AI21 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
xbzb1 天前
自建镜像仓库:registry 一条命令 + harbor 部署、授权、跨库同步与卸载
docker·harbor·镜像·仓库·同步·registry
wz97542 天前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*2 天前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路2 天前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao2 天前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
duansamve3 天前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
mengge.cloud3 天前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus