pve lxc 挂载宿主机 目录 最简单方法 (特权容器)
主要有两种情况,1特权容器 2 无特权容器
#特权容器
如果lxc创建的时候 没有勾选 无特权容器 那么直接挂载即可
例如 lxc 的id是50443(就是pve里面显示的虚拟机和ct的那个数字) ,要把pve的 /nvme/lxc_mount/nginxWebUI挂载到lxc容器里面的 /home/nginxWebUI
范例挂载这个目录出来是为了pve能使用nginxwebui自己签名的ssl证书,以及其他服务也可以用。
pct set 50443 -mp1 /nvme/lxc_mount/nginxWebUI,mp=/home/nginxWebUI
执行完成后 不需要重启 即可生效。
上面的命令等同 在 /etc/pve/lxc/50443.conf 添加一行
mp1: /nvme/lxc_mount/nginxWebUI,mp=/home/nginxWebUI
往后就mp1、mp2、mp3 。。。。
#非特权容器
基于安全性考虑,以及嵌套docker的时候的一些问题,创建ct容器的时候,通常使用非特权容器。 这个时候直接挂载的目录可能会有权限问题。
其实可以用特权用户运行docker 查看 : http://dev.leiyanhui.com/pve/kxc-docker-err
#查看root用户情况
grep root /etc/subgid /etc/subuid
-------------
/etc/subgid:root:100000:65536
/etc/subuid:root:100000:65536
root的从属用户起始id为100000,数量65536个。
#修改lxc的用户
把lxc里面的用户映射到pve的root用户
容器内root(id=0)映射为pve 服务器id 100000,递增65536个,即容器内用户id 0-65535对应服务器100000-165535nano /etc/pve/lxc/50443.conf 添加两行
lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 65536
#配置目录权限
将挂载目录让容器内root可读写的话在服务器内将所有者更改为id 100000。
chown -R 100000:100000 /nvme/lxc_mount/nginxWebUI
对应目录不可以是非linux原生文件系统,比如ntfs exfat均不可以
#pve上映射用户
映射pve用户,服务器和容器内有相同ID的用户。
nano /etc/subuid添加一行
lxc.idmap = u 1000 1000 1
nano /etc/subgid 添加一行
lxc.idmap = g 1000 1000 1