debootstrap

debootstrap 是一个在已经安装的操作系统中,使用某个子目录来安装Debian基础系统的工具。 debootstrap 工具不需要安装光盘,只需要一个Debian仓库。 debootstrap 工具是跨发行版的工具,可以在 Arch Linux 或者 Gentoo Linux 系统中运行Debian,也可以用来创建不同架构的 rootfs 系统(称为 cross-debootstrapping )。

debootstrap 可以用来取代 chroot ,提供更为方便便捷的部署容器方式。而且,结合 systemd-nspawn 可以非常容易运行一个轻量级容器,方便进行测试或者部署CI/CD构建系统。

  • 我在 zcloud 服务器上使用 Btrfs 来提供 Docker btrfs 存储驱动 ,所以这里借用 /var/lib/docker 这个Btrfs存储痴来构建子卷:

创建 btrfs subvolume ubuntu-dev
uuid=d80f2f08-3b50-4b19-a0eb-058fb47693b0
pool=/var/lib/docker
subvol=ubuntu-dev

btrfs subvolume create ${pool}/${subvol}
echo "/dev/disk/by-uuid/${uuid}    ${pool}/${subvol}    btrfs    defaults,compress=lzo,subvol=${subvol}    0 1" >> /etc/fstab
mount ${pool}/${subvol}
  • 使用 debootstrap 构建容器子系统:

使用 debootstrap 构建 Ubuntu 22.04 (代码名 jammy )
debootstrap jammy /var/lib/docker/ubuntu-dev http://archive.ubuntu.com/ubuntu

参考