从本地模板创建 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
。
我正在尝试从另一个容器的 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
。