如何将Dockerfile和应用程序文件部署到boot2docker

时间:2014-06-13 02:49:39

标签: windows docker boot2docker

我刚刚开始学习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!

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

6 个答案:

答案 0 :(得分: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构建您自己的自定义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"