Skip to content

Instantly share code, notes, and snippets.

Last active November 11, 2023 01:22
  • Star 72 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save codeinthehole/7ea69f8a21c67cc07293 to your computer and use it in GitHub Desktop.
How to share folders with docker containers on OSX

How to share a folder with a docker container on OSX

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 $username@$ipaddress:/Users/$username/ /home/docker/osx/

replacing $username and $ipaddress as appropriate. You'll have to enter your password.

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

Copy link

note: boot2docker automatically mounts /Users now this solution isn't needed anymore. just go into boot2docker instance and ls /Users

Copy link

ghost commented Nov 20, 2014

+1 @crucialfelix - thank you!

Copy link

scald commented Dec 10, 2014

Thanks @crucialfelix - I was able to mount quickly like this:

run -it -v /Users:/Users imagename bash

Copy link

ofostier commented Jun 5, 2015

Hi all,

I got an
read: Connection reset by peer

when i enter my password any ideas ?


Copy link

WishCow commented Jul 6, 2015

Is the information provided by @crucialfelix still true? We are trying to set this up on a mac, but /Users is definitely not mounted.

Copy link

Make sure you're running the latest boot2docker v1.7.0

Copy link

Elijen commented Aug 12, 2015

tce-load -wi sshfs-fuse Produces the following error for me :(

Downloading: sshfs-fuse.tcz
Connecting to (
wget: server returned error: HTTP/1.1 404 Not Found
md5sum: sshfs-fuse.tcz.md5.txt: No such file or directory
Error on sshfs-fuse.tcz

Copy link

Has same issue:

docker@default:~$ tce-load -wi sshfs-fuse

Downloading: sshfs-fuse.tcz
Connecting to (
wget: server returned error: HTTP/1.1 404 Not Found
md5sum: sshfs-fuse.tcz.md5.txt: No such file or directory
Error on sshfs-fuse.tcz

Maybe because I have latest versions:

Boot2Docker version 1.8.1, build master : 7f12e95
Docker version 1.8.1, build d12ea79

Copy link

fyddaben commented Sep 8, 2015

sudo sshfs -o allow_other user@myserver:/home/user/myprojects ~/mount/myprojects

need add allow_other, or noroot user cant have permissio

Copy link

fyddaben commented Sep 8, 2015

but when i restart boot2docker ,
sshfs : command not found

Copy link

@codeinthehole it's still necessary or the new docker-machine provide it? I'm trying to get hot-reload (NodeJS) with PM2 or Nodemon. Cheers!

Copy link

Blizzke commented Feb 6, 2016

404 for the sshfs-fuse install here as well. Getting a bit irritated by how much work this is, simply to get a folder mounted

Copy link

With native OSX app, it can be done easily as follows,

To pull a new docker image (optional step)
docker pull ubuntu

Make volume share as below,
docker run -t -i -v $(pwd):/home/shared ubuntu /bin/bash

Copy link

Agreed this worked for me
docker run -it -v /Volumes/volname:/volname image-id /bin/bash

Copy link

inancgumus commented May 14, 2017

How about mounting a volume from a different docker-machine to a local docker host? Such as a docker-machine running in digitalocean droplet to my macbook?

Copy link

Thanks @fyddaben @codeinthehole: it works for me

Copy link

danvc commented Jun 12, 2017

Hi Guys, I did the inverse and worked faster with less steps to get it working:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment