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