Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker Volume not mounting any files

I'm trying to mount my source files to a directory in docker located at /var/dynamo. I'd like to be able to run Docker locally and use my local files as I am working.

with the run command:

docker run -v $(pwd):/var/dynamo -d -t -p 8001:8001 --name dynamo davesrepo/dynamo 

with my Dockerfile

FROM python:3.5.1 WORKDIR /var/dynamo RUN pip3 install tornado EXPOSE 8001 

However, when I bash into the container docker exec -it dynamo /bin/bash and run ls -la the directory is empty!

root@7d3d338891aa:/var/dynamo# ls -la total 4 drwxr-xr-x  2 root root   40 Dec 29 03:37 . drwxr-xr-x 24 root root 4096 Dec 29 03:36 .. 

Running docker inspect dynamo shows the directory mounted properly

[ {     "Id": "7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a",     "Created": "2015-12-29T03:37:01.416445958Z",     "Path": "python3",     "Args": [],     "State": {         "Status": "running",         "Running": true,         "Paused": false,         "Restarting": false,         "OOMKilled": false,         "Dead": false,         "Pid": 1314,         "ExitCode": 0,         "Error": "",         "StartedAt": "2015-12-29T03:37:01.516253705Z",         "FinishedAt": "0001-01-01T00:00:00Z"     },     "Image": "19697c9b5c7561b113d817821280971f063ea0187c82343c0832348fb6863c9a",     "ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/resolv.conf",     "HostnamePath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/hostname",     "HostsPath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/hosts",     "LogPath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a-json.log",     "Name": "/dynamo",     "RestartCount": 0,     "Driver": "aufs",     "ExecDriver": "native-0.2",     "MountLabel": "",     "ProcessLabel": "",     "AppArmorProfile": "",     "ExecIDs": null,     "HostConfig": {         "Binds": [             "/Users/dave/Sites/davesrepo/dynamo:/var/dynamo"         ],         "ContainerIDFile": "",         "LxcConf": [],         "Memory": 0,         "MemoryReservation": 0,         "MemorySwap": 0,         "KernelMemory": 0,         "CpuShares": 0,         "CpuPeriod": 0,         "CpusetCpus": "",         "CpusetMems": "",         "CpuQuota": 0,         "BlkioWeight": 0,         "OomKillDisable": false,         "MemorySwappiness": -1,         "Privileged": false,         "PortBindings": {             "8001/tcp": [                 {                     "HostIp": "",                     "HostPort": "8001"                 }             ]         },         "Links": null,         "PublishAllPorts": false,         "Dns": [],         "DnsOptions": [],         "DnsSearch": [],         "ExtraHosts": null,         "VolumesFrom": null,         "Devices": [],         "NetworkMode": "default",         "IpcMode": "",         "PidMode": "",         "UTSMode": "",         "CapAdd": null,         "CapDrop": null,         "GroupAdd": null,         "RestartPolicy": {             "Name": "no",             "MaximumRetryCount": 0         },         "SecurityOpt": null,         "ReadonlyRootfs": false,         "Ulimits": null,         "LogConfig": {             "Type": "json-file",             "Config": {}         },         "CgroupParent": "",         "ConsoleSize": [             0,             0         ],         "VolumeDriver": ""     },     "GraphDriver": {         "Name": "aufs",         "Data": null     },     "Mounts": [         {             "Source": "/Users/dave/Sites/davesrepo/dynamo",             "Destination": "/var/dynamo",             "Mode": "",             "RW": true         }     ],     "Config": {         "Hostname": "7d3d338891aa",         "Domainname": "",         "User": "",         "AttachStdin": false,         "AttachStdout": false,         "AttachStderr": false,         "ExposedPorts": {             "8001/tcp": {}         },         "Tty": true,         "OpenStdin": false,         "StdinOnce": false,         "Env": [             "APP_ENV=development",             "PYTHONPATH=$PYTHONPATH:/var/dynamo",             "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",             "LANG=C.UTF-8",             "PYTHON_VERSION=3.5.1",             "PYTHON_PIP_VERSION=7.1.2"         ],         "Cmd": [             "python3"         ],         "Image": "davesrepo/dynamo",         "Volumes": null,         "WorkingDir": "/var/dynamo",         "Entrypoint": null,         "OnBuild": null,         "Labels": {},         "StopSignal": "SIGTERM"     },     "NetworkSettings": {         "Bridge": "",         "SandboxID": "71d99a7d11908a9d1c0156fd33eb3f0ff5ef9f6697bb77103fe2caa1cf488530",         "HairpinMode": false,         "LinkLocalIPv6Address": "",         "LinkLocalIPv6PrefixLen": 0,         "Ports": {             "8001/tcp": [                 {                     "HostIp": "0.0.0.0",                     "HostPort": "8001"                 }             ]         },         "SandboxKey": "/var/run/docker/netns/71d99a7d1190",         "SecondaryIPAddresses": null,         "SecondaryIPv6Addresses": null,         "EndpointID": "1cc99b0de89700368f31b43248c90ea45cec756712a2bd2ba2dc57293a5d0a72",         "Gateway": "172.17.0.1",         "GlobalIPv6Address": "",         "GlobalIPv6PrefixLen": 0,         "IPAddress": "172.17.0.2",         "IPPrefixLen": 16,         "IPv6Gateway": "",         "MacAddress": "02:42:ac:11:00:02",         "Networks": {             "bridge": {                 "EndpointID": "1cc99b0de89700368f31b43248c90ea45cec756712a2bd2ba2dc57293a5d0a72",                 "Gateway": "172.17.0.1",                 "IPAddress": "172.17.0.2",                 "IPPrefixLen": 16,                 "IPv6Gateway": "",                 "GlobalIPv6Address": "",                 "GlobalIPv6PrefixLen": 0,                 "MacAddress": "02:42:ac:11:00:02"             }         }     } } ] 

Docker version is 1.9.1

like image 980
digitaldavenyc Avatar asked Dec 29 '15 03:12

digitaldavenyc


People also ask

How do I mount a volume in running docker container?

Cloning From An Existing Container But, if you do need to add a volume to a running container, you can use docker commit to make a new image based on that container, and then clone it with the new volume. Then, you can run the new image, replacing the old image with the cloned one.

How do I create a volume in a docker container to store data?

To mount a data volume to a container add the --mount flag to the docker run command. It adds the volume to the specified container, where it stores the data produced inside the virtual environment. Replace [path_in_container] with the path where you want to place the data volume in the container.

What is difference between mount and volume in docker?

The most notable difference between the two options is that --mount is more verbose and explicit, whereas -v is more of a shorthand for --mount . It combines all the options you pass to --mount into one field. On the surface, both commands create a PostgreSQL container and set a volume to persist data.


2 Answers

Docker & Virtualbox seem to have an issue with mounting a volume outside of the /Users directory. The only way to fix the issue is to delete the docker machine image, properly set the /Users/yourname directory as the share folder in Virtualbox and create a new docker machine image.

Steps to fix the issue:

  1. docker-machine stop dev
  2. docker-machine rm dev
  3. docker-machine create --driver virtualbox dev
  4. eval "$(docker-machine env dev)"
  5. docker build -t davesrepo/dynamo -f ./Dockerfile .
  6. docker run -v $(pwd):/var/dynamo -d -t -p 8001:8001 --env-file ./dynamo.env --name dynamo davesrepo/dynamo
  7. docker exec -it dynamo /bin/bash
  8. ls

root@42f9e47fa2de:/var/dynamo# ls Dockerfile README.md __init__.py __pycache__ bin config.ini requirements.txt seed.sql tests

Files!

like image 119
digitaldavenyc Avatar answered Sep 30 '22 21:09

digitaldavenyc


I found out that I changed my windows password and docker requires windows credentials to mount volumes, you can update it settings > shared drives.

like image 28
roy Avatar answered Sep 30 '22 20:09

roy