2014-12-03
Mounting NFS from an LXC container
In order to permit an LXC to mount an NFS share I had to modify an Apparmor profile. Looking in /var/log/syslog we can see
apparmor="DENIED" operation="mount" info="failed type match" error=-13 profile="lxc-container-default" name="/home/shared" pid=2774 comm="mount.nfs" fstype="nfs" srcname="nfs.lan:/mnt/shared/" flags="rw"
1 Edit the profile
In the end it was /etc/apparmor.d/lxc/lxc-default Looks like this now
# Do not load this file. Rather, load /etc/apparmor.d/lxc-containers, which # will source all profiles under /etc/apparmor.d/lxc profile lxc-container-default flags=(attach_disconnected,mediate_deleted) { #include <abstractions/lxc/container-base> # the container may never be allowed to mount devpts. If it does, it # will remount the host's devpts. We could allow it to do it with # the newinstance option (but, right now, we don't). deny mount fstype=devpts, mount fstype=rpc_pipefs, mount fstype=nfs nfs.lan:/mnt/shared/**, }
Note the `nfs.lan:/mnt/shared/**` this will restrict the container to only mounting this folder and subfolders
2 Reload the profile
For some a reason I didn't investigate, I couldn't reload using a relative path and I had to reload two times
apparmor_parser -r /etc/apparmor.d/lxc-containers