使用linuxkit用yaml文件自定义linux系统
linuxkit是一个可以通过yaml文件定制linux配置并可以生成iso文件
可以利用此工具实现不可变资源和最小化系统安装
安装
- 在官方release中下载对应的二进制文件
wget https://github.com/linuxkit/linuxkit/releases/download/v1.8.2/linuxkit-linux-amd64
chmod +x linuxkit-linux-amd64
mv linuxkit-linux-amd64 /usr/local/bin/linuxkit
linuxkit version
使用
- linuxkit 编译以来docker需要先安装docker
- 官方的examples中有很多这里使用getty
mkdir demo && cd demo
wget https://raw.githubusercontent.com/linuxkit/linuxkit/refs/heads/master/examples/getty.yml
- 构建iso镜像
linuxkit build --name demo --format iso-bios getty.yml
# Extract kernel image: docker.io/linuxkit/kernel:6.12.59
# Add init containers:
# Process init image: docker.io/linuxkit/init:b5506cc74a6812dc40982cacfd2f4328f8a4b12a
# Process init image: docker.io/linuxkit/runc:9442aa234715e751a16144f1d4ae3fd1a00fd492
# Process init image: docker.io/linuxkit/containerd:ba19f64efd3331a8fd0a33e00eabd14f6ee1780e
# Process init image: docker.io/linuxkit/ca-certificates:256f1950df59f2f209e9f0b81374177409eb11de
# Add onboot containers:
# Create OCI config for linuxkit/sysctl:43ac1d39da329c3567fcb9689e5ca99de6d169b6
# Create OCI config for linuxkit/dhcpcd:b87e9ececac55a65eaa592f4dd8b4e0c3009afdb
# Add service containers:
# Create OCI config for linuxkit/getty:a86d74c8f89be8956330c3b115b0b1f2e09ef6e0
# Create OCI config for linuxkit/rngd:984eb580ecb63986f07f626b61692a97aacd7198
# Add files:
# etc/getty.shadow
# Create outputs:
# demo.iso
- 使用qemu运行需要先安装qemu
sudo apt -y install qemu-system-x86
- 启动运行
linuxkit run qemu --iso demo.iso
#
# 账号:root 密码:abcdefgh
# linuxkit-825a53e5e70e login: root
# Password:
# Welcome to LinuxKit!
#
# NOTE: This system is namespaced.
# The namespace you are currently in may not be the root.
# System services are namespaced; to access, use `ctr -n services.linuxkit ...`