![使用 LXC 2.x 将主机文件夹挂载到来宾,但它是只读的吗?](https://linux22.com/image/122570/%E4%BD%BF%E7%94%A8%20LXC%202.x%20%E5%B0%86%E4%B8%BB%E6%9C%BA%E6%96%87%E4%BB%B6%E5%A4%B9%E6%8C%82%E8%BD%BD%E5%88%B0%E6%9D%A5%E5%AE%BE%EF%BC%8C%E4%BD%86%E5%AE%83%E6%98%AF%E5%8F%AA%E8%AF%BB%E7%9A%84%E5%90%97%EF%BC%9F.png)
注意:这个问题直接关系到这个特别是为了这个答案,但它不是重复的。
我想与来宾共享主机中的一个文件夹,但要确保来宾的根目录不会意外写入该文件夹。
/toolchains
在我的例子中,主机和来宾上的文件夹都是 。它包含许多基于 GCC 的工具链,用于针对不同的平台。
现在分享本身是微不足道的:
lxc config device add CONTAINER toolchains disk source=/toolchains path=toolchains
从技术上讲,它似乎是一个绑定安装。但是,在容器内重新挂载以使其只读失败:
# mount -o remount,ro /toolchains
mount: cannot mount /dev/sda1 read-only
不幸的是,这并没有提供非常详细的信息。
为了更好地衡量,我也尝试了这个替代方案:
# mount -o remount,ro,bind /toolchains
mount: cannot mount /dev/sda1 read-only
在...mount(8)
下提到过mount --bind,ro foo foo
我有哪些选择可以实现我想要的目标?即以只读方式与来宾共享主机文件夹。我应该在这里使用某种联合 FS 还是我获得只读挂载的唯一真正机会 1.) 使用 CIFS 共享或 2.) 使用一些钩子通过mount
主机中的命令将主机文件夹绑定挂载到访客根?
我正在使用 LXC 2.20。
答案1
如果您将目录以只读方式绑定安装在主机上,然后与 LXC 容器共享,会发生什么情况?
mount --bind /toolchains /toolchains-ro
mount -o remount,ro,bind /toolchains-ro
lxc config device add CONTAINER toolchains disk source=/toolchains-ro path=toolchains
从技术上讲,主机级别上只读的所有内容在容器中都应保持只读。