无法将C驱动器上的文件夹安装为卷

我在我的用户目录中创build了一个示例快速站点,并将其安装到Docker容器,并且工作正常。 请看下面的输出:

xxxxx@DESKTOP-PCAAQU0 MINGW64 ~/ExpressSite $ docker run -p 8080:3000 -v $(pwd):/var/www1 -w "/var/www1" node npm start npm info it worked if it ends with ok npm info using npm@3.10.8 npm info using node@v7.0.0 npm info lifecycle ExpressSite@0.0.0~prestart: ExpressSite@0.0.0 npm info lifecycle ExpressSite@0.0.0~start: ExpressSite@0.0.0 > ExpressSite@0.0.0 start /var/www1 > node ./bin/www 

如果我复制/粘贴在C驱动器上名为dockertest的文件夹中的相同的目录,它会得到以下错误:

 xxxxx@DESKTOP-PCAAQU0 MINGW64 /c/dockertest/ExpressSite $ docker run -p 8080:3000 -v $(pwd):/var/www1 -w "/var/www1" node npm start npm info it worked if it ends with ok npm info using npm@3.10.8 npm info using node@v7.0.0 npm ERR! Linux 4.4.27-boot2docker npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" npm ERR! node v7.0.0 npm ERR! npm v3.10.8 npm ERR! path /var/www1/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/www1/package.json' npm ERR! enoent ENOENT: no such file or directory, open '/var/www1/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/www1/npm-debug.log 

我在这里错过了什么?


 xxxxx@DESKTOP-PCAAQU0 MINGW64 /c/dockertest/ExpressSite $ ls app.js bin/ node_modules/ package.json public/ routes/ views/ 

确保您使用的是Docker for Windows (需要64位Windows 10 Pro,企业版和教育版(1111年11月15日更新,Build 10586或更高版本)和Microsoft Hyper-V),而不是旧的Docker工具箱 (使用Oracle Virtual Box而不是Hyper- -V)。

  • 虚拟箱只能自动挂载C:\users\<yourLogin> ,而不是所有的C盘( 可以共享其他文件夹,但不是微不足道的 )
  • Hyper-V可以安装驱动器:

https://cloud.githubusercontent.com/assets/7180398/18270828/3b385b82-742f-11e6-8c74-eb55d73b0b0a.png

我使用任务栏中的小鲸鱼图标进入设置/共享驱动器屏幕。
我检查了C盘,然后点击Apply 。 这使我进入我的Windows凭据。
在更改之后,我从“设置”菜单中重置了泊坞窗。

有关更多信息,请参阅问题18756 。
例如,这个评论提到 :

对于一个mingw bash shell,这是docker工具箱添加的(例如在bashrc中)阻止mingw破坏path:

 docker () { MSYS_NO_PATHCONV=1 docker.exe "$@" } export -f docker 

也许这不是在用于Windows的Docker中的bash会话的bashrc中。