Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the best way to share files from Windows to Boot2docker VM?

I have make my code ready on Windows, but I find it's not easy to share to boot2docker.

I also find that boot2docker can't persistent my changes. For example, I create a folder, /temp, after I restart boot2docker. This folder disappears, and it's very inconvenient.

What is your way when you have some code on Windows, but you need to dockerize them?

---update---

I try to update the setting in VirtualBox and restart boot2docker, but it's not working on my machine.

Enter image description here

 docker@boot2docker:/$ ls -al /c total 4 drwxr-xr-x    3 root     root            60 Jun 17 05:42 ./ drwxrwxr-x   17 root     root           400 Jun 17 05:42 ../ dr-xr-xr-x    1 docker   staff         4096 Jun 16 09:47 Users/ 
like image 213
yuyue007 Avatar asked Jun 16 '15 10:06

yuyue007


People also ask

How do I share a Windows folder to a docker container?

In order to share Windows folders with Docker containers, you first need to configure the "Shared Drives" option in Docker settings. Once the Shared Drives option is configured, you can mount any folder on shared drives with the "-v" (volume) flag.

How do I use Boot2Docker?

Setup Boot2Docker on windows to run a tomcat instance: Run the installer, which will install VirtualBox, MSYS-git, the boot2docker Linux ISO, and the Boot2Docker management tool. Go to GitBash from Windows start. Run the command Boot2docker up. This will bring up a LINUX VM into which we will ssh in the next step.

What is Docker desktop?

Docker Desktop is an easy-to-install application for your Mac or Windows environment that enables you to build and share containerized applications and microservices.


1 Answers

Boot2Docker is a small Linux VM running on VirtualBox. So before you can use your files (from Windows) in Docker (which is running in this VM), you must first share your code with the Boot2Docker VM itself.

To do so, you mount your Windows folder to the VM when it is shutdown (here a VM name of default is assumed):

C:/Program Files/Oracle/VirtualBox/VBoxManage sharedfolder \ add default -name win_share -hostpath c:/work 

(Alternatively you can also open the VirtualBox UI and mount the folder to your VM just as you did in your screenshot!)

Now ssh into the Boot2Docker VM for the Docker Quickstart Terminal:

docker-machine ssh default

Then perform the mount:

  1. Make a folder inside the VM: sudo mkdir /VM_share
  2. Mount the Windows folder to it: sudo mount -t vboxsf win_share /VM_share

After that, you can access C:/work inside your Boot2Docker VM:

cd /VM_share 

Now that your code is present inside your VM, you can use it with Docker, either by mounting it as a volume to the container:

docker-machine ssh default docker run --volume /VM_share:/folder/in/container some/image 

Or by using it while building your Docker image:

... ADD /my_windows_folder /folder ... 

like image 182
Thomas Uhrig Avatar answered Sep 19 '22 19:09

Thomas Uhrig