我拥有的:
一台 Gentoo 主机和一个 Ubuntu 容器。
我想要的是:
从主机挂载/home到容器并正常使用它。
我在做什么:
使用标志启动容器-U --bind=/home。
我得到什么:
在容器中,我有我的/home目录,但它已被挂载为无人:无组所有者:
scratch:5:0:/home/vkirsano> ll /home
total 24
drwxr-xr-x 3 nobody nogroup 4096 Sep 19 17:39 krokoziabla
drwx------ 2 nobody nogroup 16384 Oct 20 2016 lost+found
drwxr-xr-x 56 nobody nogroup 4096 Sep 20 22:15 vkirsano
Run Code Online (Sandbox Code Playgroud)
因此,实际上我只能只读访问该/home目录的内容,这不是我想要的。比如说,我vkirsano在容器中创建了与主机中具有相同 UID:GID 的用户,因此我希望 systemd-nspawn 在绑定目录时仅保留有关文件所有权的原始信息。
我在问什么
安装文件夹的通常做法(如果有的话)是什么,例如/home保持它们在容器中正常工作的能力?
AFAIK,-U主要与 rw 不兼容--bind。来自文档:
请注意,当此选项与--private-users 结合使用时,生成的挂载点将归nobody 用户所有。这是因为挂载及其文件和目录继续由相关主机用户和组拥有,而这些用户和组在容器中不存在,因此显示在通配符 UID 65534(nobody)下。如果创建了此类绑定安装,建议使用 --bind-ro= 将其设置为只读。
我使用 nspawn 制作基于 Ubuntu 的容器,以便在我的 Arch Linux 主机上构建 Yocto。当Arch的内核启用时CONFIG_USER_NS=y,我需要PrivateUsers=off在我的/etc/systemd/nspawn/foo.nspawn文件中进行设置。(此外,我在主机和容器中添加了具有相同 UID 的用户,因此我可以Bind=在容器和主机中以相同的方式访问它。)
| 归档时间: |
|
| 查看次数: |
4201 次 |
| 最近记录: |