PVE下默认限制了LXC容器权限,不能直接挂载NFS共享文件。
简单粗暴的方法是直接取消限制,修改容器配置文件,追加一行,如:
> echo "lxc.apparmor.profile: unconfined" >> /etc/pve/lxc/100.conf
这种做法取消所有安全规则,不够安全,下面是单独设置nfs的方法:
- 在宿主机创建 新规则
> cp /etc/apparmor.d/lxc/lxc-default-cgns /etc/apparmor.d/lxc/lxc-default-nfs
> vi /etc/apparmor.d/lxc/lxc-default-nfs
profile lxc-default-nfs flags=(attach_disconnected,mediate_deleted) {
deny mount fstype=devpts,
mount fstype=cgroup -> /sys/fs/cgroup/**,
mount fstype=nfs,
mount fstype=nfs4,
mount fstype=nfsd,
mount fstype=rpc_pipefs,
}
- 加载新的规则
> apparmor_parser -r /etc/apparmor.d/lxc-containers
> systemctl reload apparmor
- 追加lxc配置
> echo "lxc.apparmor.profile = lxc-default-nfs" >> /etc/pve/lxc/CTID.conf
- 重启lxc后该lxc就可以加载nfs共享文件了。