在Windows 10上运行Docker节点容器时出错

我是Docker的新手,试图通过我的Windows 10个人电脑和我的Mac上的几个简单例子来同步运行。 下面的例子可以在Mac上正常工作,但不能在PC上正常工作。

Docker Toolbox已经安装,我已经从DockerHub下载了官方的Node image。 我使用Express来创build一个简单的基于Javascript的网站使用Handlebars工作正常,如果我从主机执行本地启动npm。

当我尝试使用以下命令启动容器时,在Windows计算机上出现错误:

$ docker run -p 8080:3000 -v $(pwd):/var/www -w "/var/www" node npm start npm info it worked if it ends with ok npm info using npm@3.10.9 npm info using node@v7.2.0 npm ERR! Linux 4.4.27-boot2docker npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" npm ERR! node v7.2.0 npm ERR! npm v3.10.9 npm ERR! path /var/www/package.json npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/var/www/package.json' npm ERR! enoent ENOENT: no such file or directory, open '/var/www/package.json' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /var/www/npm-debug.log 

相同的命令在Mac上正常工作,我可以打http:// 主机IP :8080没问题。

再次,这是一个简单的例子,应该在两个平台上工作,想知道这个错误是Docker Toolbox在每个平台上工作的一个已知区别,或者是命令中的语法错误。

任何帮助表示赞赏。

使用Windows上的Docker Toolbox (包括VirtualBox),确保你的$(pwd)是一个以C:\Users\<myLogin>开头的path:只有这个文件夹是由VirtualBox预共享和自动挂载的。

您可以尝试使用ls /var/www作为CMDdocker run来检查/var/www是否反映您的$(pwd)内容。

 docker run -p 8080:3000 -v $(pwd):/var/www -w "/var/www" node ls