8

我在 Windows 中使用 Docker Toolbox,并尝试在 docker-compose.yml 文件中安装 Windows 文件夹,如下所示:

nginx:
  image: nginx:latest
  container_name: test_server
  ports:
    - "80:80"
  volumes:
    - /sss:/c/data/www:ro
  environment:
    - VIRTUAL_HOST=test.local

我的目标是挂载C:\data\www到已经由 Docker Toolbox 创建的 boot2docker VM 映像,然后从那里挂载到其中的 nginx 容器。

不幸的是,它不起作用。我在 boot2docker 映像中得到一个文件夹 sss,但它是空的,没有针对我的 Windows 数据。

我究竟做错了什么?是否有更好的做法可以在开发时在 Windows 上使用 Docker(因此您需要在 Windows、Docker VM (boot2docker) 和 Docker 容器之间共享代码)?

4

1 回答 1

9

我的目标是挂载C:\data\www到 boot2docker VM 映像

从“手动共享目录作为 docker 卷安装点”:

你需要:

  • 修改您的 VirtualBox VM(确保首先停止它):

    VBoxManage sharedfolder add <machine name/id> --name <mount_name> --hostpath <host_dir> --automount
    # in your case
    /c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe sharedfolder add default --name www --hostpath 'C:\data\ww' --automount
    
  • 添加一个自动挂载到你的 boot2docker 虚拟机

    • 编辑/创建 (as root) /mnt/sda1/var/lib/boot2docker/bootlocal.sh, (sda1可能对你不同)
    • 添加

      mkdir -p <local_dir>
      mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir
      

(您可能必须在此处添加umaskas

于 2016-02-19T06:11:28.323 回答