How to deploy Dockerfile and application files to boot2docker

不羁的心 提交于 2019-12-20 09:26:56

问题


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


回答1:


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.




回答2:


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:


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




回答4:


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/




回答5:


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.




回答6:


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"


来源:https://stackoverflow.com/questions/24196956/how-to-deploy-dockerfile-and-application-files-to-boot2docker

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!