39

我刚刚开始学习 Docker,我正在尝试在 Windows 上使用 boot2docker 进行简单的设置。我无法在任何在线教程或示例中找到如何让 boot2docker VM 可以访问我的项目文件。

我下载了 boot2docker,并成功安装并启动并运行。我也可以通过 ssh 进入它并运行 hello world docker 示例,所以我知道我在 VM 中安装了一个有效的 Docker。

现在,问题是:如何Dockerfile在 boot2docker VM 上获取我和我的应用程序文件,以便构建 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 虚拟机中的目录。

我觉得答案可能很明显,但我敢肯定我不是唯一一个会撞到那堵墙的人。谢谢你的帮助!


更新 - 现在内置在 boot2docker 1.3 中!

从 boot2docker 1.3 开始,添加了挂载共享文件夹的功能,因此 VM 可以直接共享您的 dev 文件夹。更多信息:https ://github.com/boot2docker/boot2docker#virtualbox-guest-additions

4

6 回答 6

11

不确定它是否在Windows下有帮助。但对于 Mac,请参阅:

boot2docker 与 VirtualBox Guest Additions
如何将 /Users 挂载到 boot2docker

https://medium.com/boot2docker-lightweight-linux-for-docker/boot2docker-together-with-virtualbox-guest-additions-da1e3ab2465c

tl;dr 使用 VirtualBox Guest Additions 构建您自己的自定义 boot2docker.iso(请参阅链接)或下载 http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso 并保存到 ~/.boot2docker/boot2docker.iso。

于 2014-06-25T12:43:39.953 回答
7

按照您当前的进度,假设您的 samba 容器正在运行,您可以通过运行以下命令找到 Boot2docker VM 上 /data 文件夹的路径:

$ docker inspect <samba_container_id>

这将列出容器配置详细信息。在最底部附近,您应该看到:

“卷”:{

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

那是你的 boot2docker vm /data 路径。只需 cd 进入该文件夹

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

从 Windows 资源管理器中,导航至:

\\192.168.59.103\data

现在您可以将一些文件粘贴/复制/创建到该数据文件夹中,您应该会看到它们填充在您的 Boot2docker 虚拟机的路径中:/mnt/sda1/var/lib/docker/vfs/dir/<long_folder_id_here>

于 2014-06-13T14:34:42.673 回答
5

恕我直言,最好的方法是使用 scp。正如您可以 ssh 一样,您可以使用 winscp 将 Dockerfile 发送到 VM。

于 2014-06-13T12:09:40.857 回答
3

ssh 文件到你的虚拟机

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

写在这里http://micahasmith.github.io/2014/11/07/copying-files-into-boot2docker/

于 2014-11-08T01:32:27.800 回答
2

在 Boot2Docker 上更改您的目录“cd /c”,您将能够在 Windows 上看到用户文件夹。将您想要分享的内容放入您喜欢的用户文件夹中。

于 2015-04-01T13:35:47.587 回答
0

我在这个盒子上使用 vagrant: https ://vagrantcloud.com/yungsang/boot2docker

我将 Vagrant 文件更改为在 Windows 上使用 (auto-)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"
于 2014-08-19T08:19:17.033 回答