How to deploy Dockerfile and application files to

2019-03-09 15:51发布

I'm just starting to learn Docker, and I'm trying to get a simple setup with boot2docker on Windows. I could not find in any tutorial or samples online how to make my project files accessible to the boot2docker VM.

I downloaded boot2docker, and succeeded in installing it and getting it up and running. I can also ssh into it and run the hello world docker example, so I know I have a working Docker installation in the VM.

Now, the question: How do I get my Dockerfile and my application files on the boot2docker VM so that I can build a Docker container?

In other words, I'm trying to do this from the boot2docker VM:

$ cd /some-directory-from-my-host-os
$ docker build .

I tried following the instructions on https://github.com/boot2docker/boot2docker#folder-sharing and setup a SAMBA share, and I can successfully connect from Windows to the share at \\192.168.59.103\data but that doesn't tell me how to access that same directory from within the boot2docker VM.

I feel like the answer might be obvious, but I'm sure I'm not the only one who will hit that wall. Thanks for your help!


Update - Now Built-In in boot2docker 1.3!

Since boot2docker 1.3, the ability to mount a shared folder has been added, so the VM can share your dev folder directly. More information here: https://github.com/boot2docker/boot2docker#virtualbox-guest-additions

6条回答
来,给爷笑一个
2楼-- · 2019-03-09 16:20

Following your current progress, and presuming your samba container is running, you can find the path to the /data folder on your Boot2docker VM by running:

$ docker inspect <samba_container_id>

This will list the containers configuration details. Near the very bottom you should see:

"Volumes": {

    "/data": "/mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>

That's your boot2docker vm /data path. Simply cd into that folder

$ cd /mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>

From Windows Explorer, Navigate to:

\\192.168.59.103\data

Now you can paste/copy/create some files into that data folder and you should see them populate on your Boot2docker VM at path: /mnt/sda1/var/lib/docker/vfs/dir/<long_folder_id_here>

查看更多
聊天终结者
3楼-- · 2019-03-09 16:24

IMHO the best way would be to use scp. As you can ssh, you can use winscp to send the Dockerfile to the VM.

查看更多
【Aperson】
4楼-- · 2019-03-09 16:26

On Boot2Docker change your directory "cd /c" you will be able to see Users folders on Windows. Put the content you wanna share in your prefered Users Folders.

查看更多
时光不老,我们不散
5楼-- · 2019-03-09 16:28

Not sure if it helps under windows. But for Mac see:

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

tl;dr Build your own custom boot2docker.iso with VirtualBox Guest Additions (see link) or download http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso and save it to ~/.boot2docker/boot2docker.iso.

查看更多
男人必须洒脱
6楼-- · 2019-03-09 16:35

ssh the file into your VM

dockerfile=$(cat LocalDockerfile)
boot2docker ssh "echo '$dockerfile' > Dockerfile"

wrote it up here http://micahasmith.github.io/2014/11/07/copying-files-into-boot2docker/

查看更多
走好不送
7楼-- · 2019-03-09 16:35

I use vagrant with this box : https://vagrantcloud.com/yungsang/boot2docker

and I changed Vagrant file to use (auto-)rsync on Windows :

  rsync_args = ["--verbose", "--archive", "--delete", "-z"]
  rsync_auto = true
  rsync_exclude = [".vagrant/"]
  config.vm.synced_folder ".", "/vagrant", rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: "rsync"
查看更多
登录 后发表回答