Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use --volume option with Docker Toolbox on Windows?

How can I share a folder between my Windows files and a docker container, by mounting a volume with simple --volume command using Docker Toolbox on?

I'm using "Docker Quickstart Terminal" and when I try this:

winpty docker run -it --rm --volume /C/Users/myuser:/myuser ubuntu 

I have this error:

Invalid value "C:\\Users\\myuser\\:\\myuser" for flag --volume: bad mount mode specified : \myuser See 'docker run --help'. 

Following this, I also tried

winpty docker run -it --rm --volume "//C/Users/myuser:/myuser" ubuntu 

and got

Invalid value "\\\\C:\\Users\\myuser\\:\\myuser" for flag --volume: \myuser is not an absolute path See 'docker run --help'. 
like image 488
Anthony O. Avatar asked Oct 14 '15 13:10

Anthony O.


People also ask

How do I specify a docker volume?

In Dockerfile you can specify only the destination of a volume inside a container. e.g. /usr/src/app . When you run a container, e.g. docker run --volume=/opt:/usr/src/app my_image , you may but do not have to specify its mounting point ( /opt ) on the host machine.

How do I create a docker volume in Windows 10?

Creating Docker Volumes Another way to create a volume is to use the docker volume create command. If you don't specify a name, docker will give it a name which is a long list of random characters. Otherwise, you can specify a name here. I'm going to call this volume logdata.

Can I use docker toolbox on Windows 10?

Docker Toolbox requires 64-bit Windows 7 (or higher).

How do I browse volume on a docker?

View a Data Volume You can use the docker volume ls command to view a list of data volumes. Use the docker volume inspect command to view the data volume details.


1 Answers

This is an improvement of the selected answer because that answer is limited to c:\Users folder. If you want to create a volume using a directory outside of c:\Users this is an extension.

In windows 7, I used docker toolbox. It used Virtual Box.

  1. Open virtual box
  2. Select the machine (in my case default).
  3. Right clicked and select settings option
  4. Go to Shared Folders
  5. Include a new machine folder.

For example, in my case I have included:

**Name**: c:\dev **Path**: c/dev 
  1. Click and close
  2. Open "Docker Quickstart Terminal" and restart the docker machine.

Use this command:

$ docker-machine restart 

To verify that it worked, following these steps:

  1. SSH to the docker machine.

Using this command:

$ docker-machine ssh 
  1. Go to the folder that you have shared/mounted.

In my case, I use this command

$ cd /c/dev 
  1. Check the user owner of the folder. You could use "ls -all" and verify that the owner will be "docker"

You will see something like this:

docker@default:/c/dev$ ls -all total 92 drwxrwxrwx    1 docker   staff         4096 Feb 23 14:16 ./ drwxr-xr-x    4 root     root            80 Feb 24 09:01 ../ drwxrwxrwx    1 docker   staff         4096 Jan 16 09:28 my_folder/ 

In that case, you will be able to create a volume for that folder.

You can use these commands:

docker create -v /c/dev/:/app/dev --name dev image docker run -d -it --volumes-from dev image 

or

docker run -d -it -v /c/dev/:/app/dev image 

Both commands work for me. I hope this will be useful.

like image 117
jmgoyesc Avatar answered Oct 21 '22 15:10

jmgoyesc