我是 Docker 新手,尝试在我的 Windows 10 PC 和 Mac 上同时运行一些简单的示例。下面的示例在 Mac 上运行良好,但在 PC 上则不行。
Docker Toolbox 已安装,并且我已从 DockerHub 下载了官方 Node 镜像。我使用 Express 创建了一个使用 Handlebars 的简单的基于 Javascript 的网站,如果我从主机本地执行 npm start ,该网站可以正常工作。
当我尝试使用以下命令启动容器时,我在 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://host-ip:8080 没问题。
同样,这是一个应该在两个平台上都能工作的简单示例,想知道该错误是否可能是 Docker Toolbox 在每个平台上工作方式的已知差异,或者可能是命令中的语法错误。
感谢任何帮助。
最佳答案
与 Docker Toolbox on Windows (涉及VirtualBox),请确保您的$(pwd)
是以 C:\Users\<myLogin>
开头的路径:只有这个文件夹是 VirtualBox 预共享和自动安装的。
您可以尝试docker run
与 ls /var/www
如CMD
检查是否 /var/www
确实反射(reflect)了您的$(pwd)
内容。
docker run -p 8080:3000 -v $(pwd):/var/www -w "/var/www" node ls
关于node.js - 在 Windows 10 上运行 Docker Node 容器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40966519/