I am trying to mount a host directory into a Docker container so that any updates done on the host is reflected into the Docker containers. I couldn't succeed after googling and reading the Docker volume links.
Where am I doing something wrong. Here is what I did:
kishore$ cat Dockerfile
FROM ubuntu:trusty
RUN apt-get update
RUN apt-get -y install git curl vim
CMD ["/bin/bash"]
WORKDIR /test_container
VOLUME ["/test_container"]
kishore$ tree
.
├── Dockerfile
└── main_folder
├── tfile1.txt
├── tfile2.txt
├── tfile3.txt
└── tfile4.txt
1 directory, 5 files
kishore$ pwd
/Users/kishore/tdock
kishore$ docker build --tag=k3_s3:latest .
Uploading context 7.168 kB
Uploading context
Step 0 : FROM ubuntu:trusty
---> 99ec81b80c55
Step 1 : RUN apt-get update
---> Using cache
---> 1c7282005040
Step 2 : RUN apt-get -y install git curl vim
---> Using cache
---> aed48634e300
Step 3 : CMD ["/bin/bash"]
---> Running in d081b576878d
---> 65db8df48595
Step 4 : WORKDIR /test_container
---> Running in 5b8d2ccd719d
---> 250369b30e1f
Step 5 : VOLUME ["/test_container"]
---> Running in 72ca332d9809
---> 163deb2b1bc5
Successfully built 163deb2b1bc5
Removing intermediate container b8bfcb071441
Removing intermediate container d081b576878d
Removing intermediate container 5b8d2ccd719d
Removing intermediate container 72ca332d9809
kishore$ docker run -d -v /Users/kishore/main_folder:/test_container k3_s3:latest
c9f9a7e09c54ee1c2cc966f15c963b4af320b5203b8c46689033c1ab8872a0ea
kishore$ docker run -i -t k3_s3:latest /bin/bash
root@0f17e2313a46:/test_container# ls -al
total 8
drwx------ 2 root root 4096 Apr 29 05:15 .
drwxr-xr-x 66 root root 4096 Apr 29 05:15 ..
root@0f17e2313a46:/test_container# exit
exit
kishore$ docker -v
Docker version 0.9.1, build 867b2a9
- I don't know how to check boot2docker version
Questions, issues facing:
- How do I need to link the main_folder to the test_container folder present inside the docker container?
- I need to make this automatically. How do I to do that without really using the
run -d -v
command? - What happens if the boot2docker crashes? Where are the Docker files stored (apart from Dockerfile)?
Jul 2015 update - boot2docker now supports direct mounting. You can use
-v /var/logs/on/host:/var/logs/in/container
directly from your Mac prompt, without double mountingNote that in Windows you'll have to provide the absolute path.
Below worked for me.
i had same issues , i was trying to mount C:\Users\ folder on docker
this is how i did it Docker Toolbox command line
I'm just experimenting with getting my SailsJS app running inside a Docker container to keep my physical machine clean.
I'm using the following command to mount my SailsJS/NodeJS application under /app:
boot2docker together with VirtualBox Guest Additions
How to mount /Users into boot2docker
https://medium.com/boot2docker-lightweight-linux-for-docker/boot2docker-together-with-virtualbox-guest-additions-da1e3ab2465c
Is it possible that you use docker on OS X via
boot2docker
or something similar.I've made the same experience - the command is correct but nothing (sensible) is mounted in the container, anyway.
As it turns out - it's already explained in the docker documentation. When you type
docker run -v /var/logs/on/host:/var/logs/in/container ...
then/var/logs/on/host
is actually mapped from theboot2docker
VM-image, not your Mac.You'll have to pipe the shared folder through your VM to your actual host (the Mac in my case).