Configure NFS with boot2docker and OS X

When boot2docker is used with default vboxfs to mount shared folder /Users, it causes permission issues. For example, services do not have right to write to folders shared from host (OS X) to boot2docker.

Harsh Vakharia

--

1. Solution

This problem can be solved using NFS to share from host (OS X) to boot2docker.

2. OS X configuration

echo "$HOME -alldirs -mapall=$(whoami) -network 192.168.59.0 -mask 255.255.255.0" | sudo tee -a /etc/exports

3. Restart NFS server daemon

sudo nfsd restart

If you don’t want to use IP range for boot2docker and want to set a fix IP address which will be assigned to boot2docker every time, run boot2docker config > $HOME/.boot2docker/profile and change LowerIP and UpperIP to same IP e.g 192.168.59.103 in $HOME/.boot2docker/profile

See boot2docker-cli configuration

4. Configure boot2docker

boot2docker ssh "echo \"#! /bin/bash
sudo umount /Users && \
sudo /usr/local/etc/init.d/nfs-client start && \
sudo mkdir -p $HOME && sudo mount -t nfs -o noatime,soft,nolock,vers=3,udp,proto=udp,rsize=8192,wsize=8192,namlen=255,timeo=10,retrans=3,nfsvers=3 -v 192.168.59.3:$HOME $HOME\" | sudo tee /var/lib/boot2docker/bootlocal.sh && \
sudo chmod 755 /var/lib/boot2docker/bootlocal.sh"

5. Restart boot2docker or run the script

sh /var/lib/boot2docker/bootlocal.sh

References

Got any questions or comments? Drop me a message on Twitter @harshjv or comment below.

Originally published at harshjv.com on March 21, 2015.

--

--

Harsh Vakharia

An engineer by passion, a creator by heart, an admirer of simplicity.