如何将Dockerfile和应用程序文件部署到boot2docker
我刚刚开始学习Docker,并试图在Windows上使用boot2docker进行简单设置。 我找不到任何教程或在线样本如何使我的项目文件访问boot2docker虚拟机。
我下载了boot2docker,并成功安装并启动并运行。 我也可以ssh进入并运行hello world docker的例子,所以我知道我有一个在VM中正常工作的Docker安装。
现在,问题是 :如何在boot2docker虚拟机上获得我的Dockerfile
和我的应用程序文件,以便构buildDocker容器?
换句话说,我试图从boot2docker虚拟机来做到这一点:
$ cd /some-directory-from-my-host-os $ docker build .
我试着按照https://github.com/boot2docker/boot2docker#folder-sharing上的说明设置一个SAMBA共享,并且我可以成功地从Windows连接到\\192.168.59.103\data
的共享但是不告诉我如何从boot2docker虚拟机中访问同一个目录。
我觉得答案可能是显而易见的,但是我相信我不是唯一一个会打到这堵墙的人。 谢谢你的帮助!
更新 – 现在内置在boot2docker 1.3中!
由于boot2docker 1.3,已经添加了安装共享文件夹的能力,所以虚拟机可以直接共享你的开发文件夹。 更多信息在这里: https : //github.com/boot2docker/boot2docker#virtualbox-guest-additions
不知道在Windows下是否有帮助。 但是对于Mac来说:
boot2docker与VirtualBox Guest Additions一起使用
如何挂载/用户到boot2docker
tl; dr使用VirtualBox Guest Additions构build您自己的定制boot2docker.iso(请参阅链接 )或下载http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso并保存到〜/ .boot2docker / boot2docker.iso。
按照当前的进度,假设您的samba容器正在运行,您可以运行以下命令findBoot2docker虚拟机上的/ data文件夹的path:
$ docker inspect <samba_container_id>
这将列出容器configuration细节。 接近底部,你应该看到:
“卷”:{
"/data": "/mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
这是你的boot2docker虚拟机/数据path。 简单地进入该文件夹
$ cd /mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
从Windows资源pipe理器中,导航到:
\\192.168.59.103\data
现在你可以粘贴/复制/创build一些文件到这个数据文件夹中,你应该看到它们在你的Boot2docker虚拟机的path上: /mnt/sda1/var/lib/docker/vfs/dir/<long_folder_id_here>
恕我直言,最好的办法是使用scp。 正如你可以ssh,你可以使用winscp发送Dockerfile到虚拟机。
ssh文件到您的虚拟机
dockerfile=$(cat LocalDockerfile) boot2docker ssh "echo '$dockerfile' > Dockerfile"
把它写在这里http://micahasmith.github.io/2014/11/07/copying-files-into-boot2docker/
在Boot2Docker上更改您的目录“cd / c”,您将能够在Windows上看到用户文件夹。 把你想分享的内容放在你喜欢的用户文件夹中。
我使用这个箱子的stream浪汉: https : //vagrantcloud.com/yungsang/boot2docker
我改变了Vagrant文件在Windows上使用(自动)rsync:
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"