Difference between revisions of "LXC Bind Mounts"

From Proxmox VE
Jump to navigation Jump to search
(added hint to pct set command)
Line 9: Line 9:
  
 
Suppose you want to access the following directories in your LXC container with ID100:
 
Suppose you want to access the following directories in your LXC container with ID100:
* /target which is a local directory
+
* /host-target which is a local directory
 
* /mnt/pve/freenas which is a NFS mounted directory
 
* /mnt/pve/freenas which is a NFS mounted directory
  
 
Then you need to add the following parameters to /etc/pve/lxc/100.conf
 
Then you need to add the following parameters to /etc/pve/lxc/100.conf
 
<pre>
 
<pre>
  mp0: /target/test,mp=/target
+
  mp0: /host-target/test,mp=/guest-target
 
  mp1: /mnt/pve/freenas,mp=/mnt/pve/freenas
 
  mp1: /mnt/pve/freenas,mp=/mnt/pve/freenas
 
</pre>
 
</pre>
Line 20: Line 20:
 
alternatively you can set it with pct (see [[Manual: pct]])
 
alternatively you can set it with pct (see [[Manual: pct]])
 
<pre>
 
<pre>
  pct set 100 -mp0 mp=/target,/target/test
+
  pct set 100 -mp0 mp=/host-target,/guest-target
 
  pct set 100 -mp1 mp=/mnt/pve/freenas,/mnt/pve/freenas
 
  pct set 100 -mp1 mp=/mnt/pve/freenas,/mnt/pve/freenas
 
</pre>
 
</pre>

Revision as of 23:27, 16 September 2016

Introduction

Bind mounts allow you to access a directory, or a storage volume from your Proxmox VE host inside a container. There can be many purposes:

  • Accessing your home directory in the guest
  • Accessing a USB device directory in the guest
  • Accessing a NFS mount from in the host in the guest

Note that the device you want to use has to be already accessible in the pve host. For security reasons, it is not possible to mount a device of NFS share directly in the guest.

Suppose you want to access the following directories in your LXC container with ID100:

  • /host-target which is a local directory
  • /mnt/pve/freenas which is a NFS mounted directory

Then you need to add the following parameters to /etc/pve/lxc/100.conf

 mp0: /host-target/test,mp=/guest-target
 mp1: /mnt/pve/freenas,mp=/mnt/pve/freenas

alternatively you can set it with pct (see Manual: pct)

 pct set 100 -mp0 mp=/host-target,/guest-target
 pct set 100 -mp1 mp=/mnt/pve/freenas,/mnt/pve/freenas

reboot your container and log in:

 pct enter
 mount | egrep '(target|freenas)'
 /dev/dm-0 on /target type ext4 (rw,relatime,errors=remount-ro,data=ordered)
 freenas.local:/mnt/TranstecThrough/exported

Manual method

  • This works as of 2015-09-13 using lxc-pve: 1.1.3-1 .
add this to the .conf file in /etc/pve/lxc
lxc.mount.entry: /host/folder container/folder  none bind,create=dir,optional 0 0

Note: Do not put a '/' before the container target

Note: This adds an entry to "/var/lib/lxc/<containerID>/config" in the correct format. Do not edit "/var/lib/lxc/<containerID>/config" manually as that is overwritten on container boot.

Bind mounts and backup

Note that bind mounts are not going to be included when you backup the container by default. You need to set the backup flag to include them.

mp0: /target/test,mp=/target,backup=1