我在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容器之间共享代码)?
答案 0 :(得分:9)
我的目标是将
C:\data\www
挂载到boot2docker VM映像
来自“Manually sharing directory as docker volume mounting 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
添加automount to your boot2docker VM:
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
(您可能需要add the umask
as in here)