如何在自定义目录中创建 LXC 容器

如何在自定义目录中创建 LXC 容器

我的根文件系统已满,我想在主目录中创建一个容器,该目录有大量可用空间。我创建了一个如下配置文件:

  LXC_AUTO="true"
  LXC_DIRECTORY="/home/al/lxc"

我正在创建一个这样的容器:

  $ sudo lxc-create -f lxc.conf -t ubuntu -n foo

但它仍然填满了/var。

我如何告诉 lxc 在我的主目录中创建一个容器?

答案1

编辑#2:

哇,不敢相信我错过了这个:

首次安装 lxc (版本:0.8.0~rc1-8+deb7u1)(“apt-get install lxc”)时,它会询问您希望容器放置在哪个目录中。

编辑 #2 结束

编辑:

显然,如果您使用以下命令从源代码安装“lxc”:

make install --localstatedir=/home

它应该允许在 /home 目录中自动创建 VE。这将影响所有 lxc-* 工具。

编辑结束

您需要编辑“lxc-create”(对我来说,它位于“/usr/bin”中)。在定义“localstatedir”和“lxc_path”的文件中,您需要对其进行更改。

根据您的需要,您需要:

localstatedir=/home
lxc_path=${localstatedir}/al/lxc

或者可能:

localstatedir=/home/al
lxc_path=${localstatedir}/lxc

我的设置:

localstatedir=/home
lxc_path=${localstatedir}/lxc

我刚刚弄清楚了这一点;它创建容器时没有任何错误,但我还没有对此进行进一步测试。至于配置文件“/etc/default/lxc”中的行“LXC_DIRECTORY=”,它需要与文件“lxc-create”中的行“lxc_path=”匹配,否则它将在两个不同的目录中创建 rootfs。

因此你的配置文件“/etc/default/lxc”需要读取:

LXC_DIRECTORY="/home/al/lxc"

我的是:

LXC_DIRECTORY="/home/lxc"

这当然是一种解决方法,我不知道这对其他 lxc-* 工具有何影响。它们可能也需要根据需要进行编辑;也许其他人可以就如何安装内置于程序中的 lxc 提供一些建议。

答案2

您可以使用--lxcpath/-P选项覆盖容器路径,如下所示:

sudo lxc-create -P /home/al/lxc -f lxc.conf -t ubuntu -n foo

相关内容