我在Windows 10 Pro上使用Docker版本1.12.0-rc3-beta18(版本号:5226)。我想在Windows机器上使用Docker进行PHP开发。我尝试了所有可能的(我希望)将主机目录挂载到Docker容器中的变体:
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
发生了什么事?
答案 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挂载文件夹。
为了能够从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