- Log into the container and create an empty directory, this will be the mount point
- Log out and stop the container.
- Open to your container's config file
- For regular LXC containers:
/var/lib/lxc/mycontainer/config
- For unprivileged LXC containers:
$HOME/.local/share/lxc/mycontainer/config
- For regular LXC containers:
- Add a new line above the
lxc.mount
directive, that follows the format below. Substitute proper paths as necessary:lxc.mount.entry = /path/to/folder/on/host /path/to/mount/point none bind 0 0
- Both of these paths are relative to the host machine.
- Location of the root fs in the container can be found at:
- For regular LXC containers:
/var/lib/lxc/mycontainer/rootfs/
- For unprivileged LXC containers:
$HOME/.local/share/lxc/mycontainer/rootfs
- For regular LXC containers:
Note: If the host's user does not exist in the container, the container will still be mounted, but with nobody:nogroup
as the owner. This may not be a problem unless you need to write to these files, in which case you'll need to give everybody write permission to that folder. (i.e. chmod -R go+w /folder/to/share
)
I want to share /home/julianlam/foobar
to my unprivileged container bazquux
. In bazquux
, I want this folder to be found at /mnt/baz
.
In the container:
$ cd /mnt
$ sudo mkdir baz
$ logout
In the host, I will add the following line above lxc-mount
in /home/julianlam/.local/share/lxc/bazquux/config
:
lxc.mount.entry = /home/julianlam/foobar /home/julian/.local/share/lxc/bazquux/rootfs/mnt/baz none bind 0 0
Then
$ lxc-start -n bazquux -d
@kokizzu's command works well, but I also wanted to be able to write those files. For that I had to specify a custom idmap:
This maps uid 1000 on the host to uid 1000 inside the container.