node.js - 在 Windows 10 上运行 Docker Node 容器时出错

标签 node.js docker

我是 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 runls /var/wwwCMD检查是否 /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/

相关文章:

node.js - 将express.js路由函数的结果传递给另一个路由函数

javascript - 如何返回土耳其格式的日期?

docker - 从 Nexus Repository Manager OSS 3.0.1-01 中删除 Docker 镜像

docker - 更改 Dockerfile 上的 ImageMagick 策略

python - Docker 中 python :2. 7-alpine 的 psycopg2 安装

javascript - 在尝试抓取 React 网站时获取 index.html 内容

javascript - Express 中的路由参数为空

node.js - 从 Github 存储库在生产服务器上设置 Node.js 应用程序时遇到问题

docker - docker --rm=true 会对缓存产生不利影响吗?

docker - 如何在构建时将代码放入 docker 镜像