【发布时间】:2014-01-14 11:27:58
【问题描述】:
有没有办法让所有 LXC 容器都可以访问文件?我有一个 SQLite 数据库,我想与我的所有容器共享,这可能吗?
【问题讨论】:
有没有办法让所有 LXC 容器都可以访问文件?我有一个 SQLite 数据库,我想与我的所有容器共享,这可能吗?
【问题讨论】:
简单易懂。 使用挂载绑定。
这是一个例子。
首先,创建一个目录来存放您要在主机上共享的文件。
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 才能让每个容器的必要用户读取/写入内容。
如果您需要任何进一步的解释或帮助,请发表评论。 -弗兰克
【讨论】: