/Docker 19

docker-machine mount

Mount directories from a machine to your local host, using sshfs.

The notation is machinename:/path/to/dir for the argument; you can also supply an alternative mount point (default is the same dir path).


Consider the following example:

$ mkdir foo
$ docker-machine ssh dev mkdir foo
$ docker-machine mount dev:/home/docker/foo foo
$ touch foo/bar
$ docker-machine ssh dev ls foo

Now you can use the directory on the machine, for mounting into containers. Any changes done in the local directory, is reflected in the machine too.

$ eval $(docker-machine env dev)
$ docker run -v /home/docker/foo:/tmp/foo busybox ls /tmp/foo
$ touch foo/baz
$ docker run -v /home/docker/foo:/tmp/foo busybox ls /tmp/foo

The files are actually being transferred using sftp (over an ssh connection), so this program (“sftp”) needs to be present on the machine - but it usually is.

To unmount the directory again, you can use the same options but the -u flag. You can also call fuserunmount (or fusermount -u) commands directly.

$ docker-machine mount -u dev:/home/docker/foo foo
$ rmdir foo

Files are actually being stored on the machine, not on the host. So make sure to make a copy of any files you want to keep, before removing it!

machine, mount, subcommand

© 2019 Docker, Inc.
Licensed under the Apache License, Version 2.0.
Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.
Docker, Inc. and other parties may also have trademark rights in other terms used herein.