$ cat "

Docker Toolbot: Adding a Shared Folder to the Docker Host Virtual Machine


If you are using Docker Toolbox (boot2docker) and want to make files available to your containers, or have the containers write data to permanent storage on your Windows system outside of the container, you need to first share a folder from your Windows system with the Docker host virtual machine.

This is a guide to create a shared folder in Virtual Box and then mount that folder in the virtual machine.

First, make sure the docker host VM is stopped:

docker-machine stop

Create the VirtualBox shared folder for the virtual machine:

cd 'c:\Program Files\Oracle\VirtualBox\'

.\VBoxManage.exe sharedfolder add "<your-vm-name>" --name "<some_name>" --hostpath "C:\Some\Directory"

For example:

\VBoxManage.exe sharedfolder add "default" --name "foo" --hostpath "C:\Foo"

Start the Docker host VM and ssh into it:

docker-machine start
docker-machine ssh

The folder where you want to mount the shared folder must exist before mounting:

mkdir /home/docker/foo

Mount the shared folder:

sudo mount -t vboxsf -o uid=1000,gid=50 your-shared-folder-name /home/docker/foo

Make sure everything worked by checking that the folder has the expected contents:

ls /home/docker/foo

If everything worked you have to make this permanent by adding the mount command to the docker profile:

vi /mnt/sda1/var/lib/boot2docker/profile

Add the mkdir and mount commands from above (no sudo required though) to the end of the profile file.

Make sure that the profile changes worked by restarting the docker machine and checking the folder contents:

docker-machine stop
docker-machine start
ls /home/docker/foo

Note: The docker-machine commands above assumes that the currently active docker machine is the one to which you want to add the shared folder, otherwise you need to specify the machine name when using the docker-machine commands.

Written by Erik Öjebo 2016-05-25 20:43