无法将Windows主机目录挂载到Docker容器

时间:2016-07-08 07:42:45

标签: windows docker mount

我在Windows 10 Pro上使用Docker版本1.12.0-rc3-beta18(版本号:5226)。我想在Windows机器上使用Docker进行PHP开发。我尝试了所有可能的(我希望)将主机目录挂载到Docker容器中的变体:

  • // C /用户/...
  • / C /用户/...
  • // C /用户/...
  • / C /用户/...
  • C:/用户/...
  • C:\用户...
  • " C:\用户..." 两种变体都没有发射容器。是的,docker run创建了容器,我可以使用docker ps --all查看它。但我无法开始。例如。我尝试了简单的文档示例:

docker run -d -P -v "C:\temp":/opt/webapp training/webapp python app.py

docker logs e030ba0f7807

重播为

python: can't open file 'app.py': [Errno 2] No such file or directory

发生了什么事?

1 个答案:

答案 0 :(得分:1)

如果您使用docker-machine的docker,则需要先将c:\temp注册为VirtualBox中的共享文件夹。

请参阅" docker with shared folder d drive"

docker-machine ssh会话中:

sudo touch /mnt/sda1/var/lib/boot2docker/bootlocal.sh

添加到该文件:

mkdir -p /mnt/temp
mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` temp /mnt/temp

然后可以通过/mnt/temp访问该路径。

这同样适用于C:\Users,它已经是共享文件夹c/Users

可通过/c/Users访问。

使用Hyper-V,请参阅" Running Docker on Hyper-V"来自Henning M Stephansen

  

Hyper-V是比VMWare或VirtualBox更加孤立和限制的环境,因此没有共享文件夹的概念。
  但是,我们可以从Docker VM安装和访问Windows共享。

     

您需要做的第一件事就是共享一个文件夹。此文件夹仅限于您的用户   如果VM可以通过外部虚拟交换机或内部虚拟交换机访问网络,则应该可以从docker VM挂载文件夹。

http://www.henning.ms/wp-content/uploads/2015/05/share-internet.jpg

  

为了能够从Boot2Docker / Tiny Core Linux安装Windows共享,我们需要安装一些额外的模块(这可能包含在您的图像中):

wget http://distro.ibiblio.org/tinycorelinux/5.x/x86/tcz/cifs-utils.tcz
tce-load -i cifs-utils.tcz
  

现在我们可以使用以下命令

挂载共享文件夹
sudo mount -t cifs //HOST-IP-HERE/SharedFolderPath /path/where/we/want/it/mounted -o username=HOST_USERNAME_HERE