0

有没有办法让所有 LXC 容器都可以访问文件?我有一个 SQLite 数据库,我想与我的所有容器共享,这可能吗?

4

1 回答 1

2

十分简单。使用挂载绑定。

这是一个例子。

首先,创建一个目录来保存您要在主机上共享的文件。

mkdir /var/shared

接下来,我们需要在可以挂载到的容器中创建一个目录。我在 Ubuntu 中使用默认位置并有 2 个容器。一个名为“test1”,另一个名为“test2”。

mkdir /var/lib/lxc/test1/rootfs/var/shared
mkdir /var/lib/lxc/test2/rootfs/var/shared

mkdir /var/lib/lxc/<lxc container name here>/rootfs/var/shared

上述命令是可选的。您可以使用容器中的任何子目录。我说“/var/shared”。

接下来我们做:

mount -o bind /var/shared /var/lib/lxc/test1/rootfs/var/shared
mount -o bind /var/shared /var/lib/lxc/test2/rootfs/var/shared

要使此在主机重新启动后持续存在,请执行以下操作。

# vi /etc/fstab

添加以下内容

/var/shared   /var/lib/lxc/test1/rootfs/var/shared   none   rw,bind   0   0
/var/shared   /var/lib/lxc/test2/rootfs/var/shared   none   rw,bind   0   0

再次,将 test1 和 test2 替换为您正确命名的容器。

任何放置在 /var/shared 目录中的东西都可以被所有挂载的容器访问。但是由于每个子容器的 UID 和 GID 可能不同,因此您可能必须 chmod 666 才能让每个容器的必要用户读取/写入内容。

如果您需要任何进一步的解释或帮助,请发表评论。-坦率

于 2014-08-10T21:18:50.007 回答