我刚刚开始学习Docker,我正试图在Windows上使用boot2docker进行简单的设置。我无法在任何教程或在线样本中找到如何使我的项目文件可供boot2docker VM访问。
我下载了boot2docker,并成功安装并启动并运行。我也可以进入它并运行hello world docker示例,所以我知道我在VM中安装了一个Docker。
现在,问题:如何在boot2docker VM上获取我的Dockerfile
和我的应用程序文件,以便构建Docker容器?
换句话说,我正在尝试从boot2docker VM执行此操作:
$ cd /some-directory-from-my-host-os
$ docker build .
我尝试按照https://github.com/boot2docker/boot2docker#folder-sharing上的说明设置SAMBA共享,我可以成功地从Windows连接到\\192.168.59.103\data
的共享,但这并没有告诉我如何访问同一目录在boot2docker VM中。
我觉得答案可能很明显,但我确信我不是唯一会碰到那堵墙的人。谢谢你的帮助!
从boot2docker 1.3开始,添加了挂载共享文件夹的功能,因此VM可以直接共享您的dev文件夹。更多信息请访问:https://github.com/boot2docker/boot2docker#virtualbox-guest-additions
答案 0 :(得分:11)
不确定它是否有助于Windows下。但对于Mac,请看:
boot2docker和VirtualBox Guest Additions
如何将/ Users挂载到boot2docker
tl; dr使用VirtualBox Guest构建您自己的自定义boot2docker.iso 添加(参见link)或下载 http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso 并将其保存到〜/ .boot2docker / boot2docker.iso。
答案 1 :(得分:7)
根据您当前的进度,并假设您的samba容器正在运行, 您可以通过运行以下命令找到Boot2docker VM上/ data文件夹的路径:
$ docker inspect <samba_container_id>
这将列出容器配置详细信息。 在最底部附近你应该看到:
“卷”:{
"/data": "/mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
那是你的boot2docker vm /数据路径。 只需cd进入该文件夹
$ cd /mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
从Windows资源管理器中,导航至:
\\192.168.59.103\data
现在您可以将某些文件粘贴/复制/创建到该数据文件夹中,您应该看到它们在路径上填充在Boot2docker VM上:/mnt/sda1/var/lib/docker/vfs/dir/<long_folder_id_here>
答案 2 :(得分:5)
恕我直言,最好的方法是使用scp。您可以使用winscp将Dockerfile发送到VM。
答案 3 :(得分:3)
将文件ssh到您的VM中
dockerfile=$(cat LocalDockerfile)
boot2docker ssh "echo '$dockerfile' > Dockerfile"
在这里写了http://micahasmith.github.io/2014/11/07/copying-files-into-boot2docker/
答案 4 :(得分:2)
在Boot2Docker上更改目录“cd / c”,您将能够在Windows上看到“用户”文件夹。将您想要分享的内容放在首选的用户文件夹中。
答案 5 :(得分:0)
我在这个盒子里使用vagrant: 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"