有没有办法让所有LXC容器都可以访问文件?我有一个SQLite数据库,我想与我的所有容器共享,这可能吗?
答案 0 :(得分:2)
容易腻。 使用mount bind。
以下是一个例子。
首先,创建一个目录来保存您希望在主机上共享的文件。
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
要在Host重新启动后保持此持久性,请执行以下操作。
# 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&amp; test2与您正确命名的容器。
具有mount的所有容器都可以访问放在/ var / shared目录中的任何内容。但由于每个子容器的UID和GID可能不同,因此您可能需要chmod 666来让每个容器的必要用户读/写一些内容。
如果您需要任何进一步的解释或帮助,请发表评论。 -Frank