无法在Windows上的节点容器中运行示例快速应用程序

我正在看Pluralsight的Docker课程,我需要在刚刚下载的Docker容器上运行Docker源代码。

即使我有当前path中的package.json文件,它不会被识别。

 Usuario@RE MINGW64 /d/node/ExpressSite $ docker run -p 8080:3000 -v /$(pwd):/var/www -w "/var/www" node:4.4.5 npm start npm info it worked if it ends with ok npm info using npm@2.15.5 npm info using node@v4.4.5 npm ERR! Linux 4.4.12-boot2docker npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" npm ERR! node v4.4.5 npm ERR! npm v2.15.5 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 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 

为什么Pluralsight是一样的,它的工作原理? 我的版本有什么问题?

从官方文档https://docs.docker.com/engine/userguide/containers/dockervolumes/

如果您在Mac或Windows上使用Docker计算机,则引擎守护程序只能访问您的OS X或Windows文件系统。 Docker机器尝试自动共享您的/ Users(OS X)或C:\ Users(Windows)目录。 所以,你可以在OS X上使用安装文件或目录。

docker run -v /Users/<path>:/<container path> ...

在Windows上,使用以下命令装载目录

docker run -v /c/Users/<path>:/<container path> ...

所以,你可以用你的代码在C:\Users\<your_username>你的C:\Users\<your_username> (例如code )中创build一个目录,并像这样在容器中装入它:

docker run -p 8080:3000 -v /c/Users/<your_username>/code:/var/www -w "/var/www" node:4.4.5 npm start

请注意,您的代码将在/var/www/目录中的容器内部可用

pwd返回/c/Users/<my_username> 。 在Dockerterminal中自己尝试一下。


为方便起见,您可以使用pwd

docker run -p 8080:3000 -v $(pwd)/code:/var/www -w "/var/www" node:4.4.5 npm start

祝你好运,并且把所有的东西Dockerize!