Docker撰写装载Windows文件夹

Nic*_*dis 8 docker boot2docker docker-compose docker-toolbox

我在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
Run Code Online (Sandbox Code Playgroud)

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

不幸的是它不起作用.我在boot2docker映像中获得了一个文件夹sss,但它没有定位到我的Windows数据,它是空的.

我究竟做错了什么?在开发过程中有没有更好的做法才能在Windows上使用Docker(所以你需要在Windows,Docker VM(boot2docker)和Docker容器之间共享代码)?

Von*_*onC 9

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

从" 手动共享目录作为docker volume mount point ":

你需要:

  • 修改您的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
    
    Run Code Online (Sandbox Code Playgroud)
  • 为boot2docker VM添加自动挂载:

    • 编辑/创建(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
      
      Run Code Online (Sandbox Code Playgroud)

(你可能需要在这里添加umaskas)