使用 distrobuilder 制作 LXC/LXD 镜像 distrobuilder 是 LXC 官方开源实现的一个 LXC/LXD 镜像制作工具,官方发布的各种发行版预制镜像均由该工具制作,在 这里 可以看到它正在工作。 安装方法 工具使

使用 distrobuilder 制作 LXC/LXD 镜像

distrobuilder 是 LXC 官方开源实现的一个 LXC/LXD 镜像制作工具,官方发布的各种发行版预制镜像均由该工具制作,在 这里 可以看到它正在工作。

安装方法

工具使用 go 实现,需提前安装 go 1.19 以上版本。

1
2
3
$ git clone https://github.com/lxc/distrobuilder
$ cd distrobuilder
$ make

编译完成后在这里找到该工具:

1
$HOME/go/bin/distrobuilder

制作镜像

distrobuilder 的官方文档 介绍了使用方法,在 LXC 示例目录lxc-ci存储库 中可以找到各种发行版的YAML文件示例。

这里以 debian 为例介绍,在官方库获取 debian 的 YAML 文件

使用下列命令制作:

1
2
3
4
5
6
7
# 下面这行命令制作 debian bullseye arm64 版
# image.variant=default 的含义可以自行查询尝试
$ $HOME/go/bin/distrobuilder build-lxc debian.yaml -o image.release=bullseye -o image.architecture=arm64 -o image.variant=default
$ ls -l
-rw-r--r--. 1 root root 64103 5月 5 14:06 debian.yaml
-rw-r--r--. 1 root root 1056 5月 5 14:15 meta.tar.xz
-rw-r--r--. 1 root root 77679152 5月 5 14:15 rootfs.tar.xz

最后使用类似这样的命令即可基于该镜像制作 LXC 容器:

1
2
$ lxc-create -n myContainerImage -t local -- --metadata meta.tar.xz --fstree rootfs.tar.xz
$ lxc-start -n myContainerImage

References