从本地模板创建 LXC 容器 (tar.gz)

Create an LXC container from a local template (tar.gz)

我正在尝试从另一个容器的 rootfs 的本地 tar.gz 创建一个 LXC 容器,但我在 lxc-create 中找不到任何选项可以这样做。我可以创建一个新容器,删除它的 rootfs 并用我未压缩的 rootfs 替换它,但这太笨拙了。有更好的方法吗?

经过一番搜索后,我发现 this script 需要一个 tar.gz 并创建一个 LXC 容器。

$ lxc-create -n test-container -t ./salt_tarball -- --network_link lxcbr0 --imgtar /root/template.tar.gz

注意这里salt_tarball是脚本的名字。

使用上面提到的that script @syed 需要更多工作(Ubuntu 16.04,LXC 2.0,仍然不是 lxd):

首先你必须将脚本复制到模板目录并使其可执行

$ cp salt_tarball /usr/share/lxc/templates/lxc-salt_tarball
$ chmod +x /usr/share/lxc/templates/lxc-salt_tarball

复制时一定要在名字前加上lxc-

使用脚本创建新容器 do

$ lxc-create -n test-container -t salt_tarball -- --network_link lxcbr0 --imgtar /root/template.tar.gz

即在没有 ./ 且没有上面添加的 lxc- 的情况下调用 salt_tarball 。 选项 --network_link 是可选的。

从任何现有容器创建 tar.gz 时请注意使用 --numeric-owner