我正在尝试将主机上的文件夹挂载到 LXC 容器。
主机/mnt/ssd/solr_data创建了一个文件夹(目前在根文件系统上,但稍后我将在那里安装一个 SSD 驱动器,所以我正在为此做准备)。
我希望该文件夹像/data在容器中一样安装。
所以在容器 fstab 文件中,我有以下内容:
/mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data ext4 defaults,noatime 0 0
Run Code Online (Sandbox Code Playgroud)
但这是不行的,我在启动容器时遇到此错误:
lxc-start: No such file or directory - failed to mount '/mnt/ssd/solr_data' on '/usr/lib/x86_64-linux-gnu/lxc//data'
lxc-start: failed to setup the mounts for 'Solr4StandAlone'
lxc-start: failed to setup the container
lxc-start: invalid sequence number 1. expected 2
lxc-start: failed to spawn 'Solr4StandAlone'
Run Code Online (Sandbox Code Playgroud)
lit*_*ude 19
要在容器中自动创建目录,您还create=dir可以在 fstab 中添加选项:
/mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data none bind,create=dir
Run Code Online (Sandbox Code Playgroud)
编辑:这是特定于 LXC 的。看到这个线程
就像我们已经有了“可选”一样,这增加了两个新的 LXC 特定的挂载标志:
create=dir(将在路径上做一个 mkdir_p)
create=file(将在目录名上执行 mkdir_p + 在路径上执行 fopen)
这是由一些非特权容器所需的绑定安装驱动的。
Mau*_*043 17
在/var/lib/lxc/Solr4StandAlone/config添加一行阅读:
lxc.mount.entry = /mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data none bind 0 0
Run Code Online (Sandbox Code Playgroud)
然后再次lxc-stop停止您的容器和lxc-start容器。
这就是所需要的。
ref:参考链接
Dav*_*rks 11
/data在安装正常工作之前,我必须在本地容器中创建文件夹。
我还使用了这个 fstab 条目:
/mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data none bind 0 0
Run Code Online (Sandbox Code Playgroud)
小智 11
截至 2015 年 9 月 30 日,安全补丁导致的更改中断安装到配置文件中带有 lxc.mount.entry 的绝对路径。
相反,您可以使用相对路径
lxc.mount.entry = /mnt/ssd/solr_data data none bind 0 0
Run Code Online (Sandbox Code Playgroud)
请参阅:https : //wiki.debian.org/LXC#Bind_mounts_inside_the_container
小智 6
由于 LXC 随着时间的推移发生了变化,这可能非常简单,但它让我有点难受,所以想做出贡献。我还为此创建了一个要点,因此我可以记住自己,但只需使用 lxc config device 即可。
sudo lxc config device add Solr4StandAlone sdb disk source=/var/lib/lxc/Solr4StandAlone/rootfs/data path=mnt/ssd/solr_data
Run Code Online (Sandbox Code Playgroud)
注意由于@biscuitNinja 提到的更改,将前斜杠从路径参数中删除很重要
| 归档时间: |
|
| 查看次数: |
53903 次 |
| 最近记录: |