有没有办法让所有 LXC 容器都可以访问文件?我有一个 SQLite 数据库,我想与我的所有容器共享,这可能吗?
问问题
135 次
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 回答