Mounting shared folders between OSX and the docker container is tricky due to
the intermediate boot2docker VM. You can't use the usual docker -v
option as
the docker server knows nothing about the OSX filesystem - it can only mount
folders from the boot2docker filesystem. Fortunately, you can work around this
using SSHFS.
Install sshfs on the boot2docker machine:
$ boot2docker ssh docker@boot2docker:~$ tce-load -wi sshfs-fuse
and create a folder to mount to:
docker@boot2docker:~$ mkdir ~/osx
Ensure that 'Remote Login' is enabled in 'System Preferences > Sharing' and make a note of your host IP address.
Now run sshfs on the boot2docker VM to mount a folder from your host machine:
docker@boot2docker:~$ sudo sshfs -o allow_other $username@$ipaddress:/Users/$username/ /home/docker/osx/
replacing $username
and $ipaddress
as appropriate. You'll have to enter
your password, -o allow_other - prevent Permission denied.
For unmount:
docker@boot2docker:~$ sudo fusermount -u osx
Now you can run a docker container (using the docker client on your host machine) and mount a local folder (using the path to it on the boot2docker VM), eg:
$ docker run -it -v /home/docker/osx/somefolder:/opt/somefolder ubuntu bash
and any updates made within your local folder will be immediately visible within the container.
Largely taken from the comments here: boot2docker/boot2docker#188