Windows 10和Linux容器的Docker卷共享问题

时间:2020-08-01 22:58:38

标签: windows docker docker-volume

我整天都在搜索和搜索。现在我头疼。任何人都知道解决方案,请让我知道

我的目标是在linux容器和Windows文件夹之间共享公用文件夹

docker run -ti --rm -p 49160:8080  mycontainer

curl -i localhost:49160

以上作品并显示您好世界。 Mycontainer是可响应请求的nodejs应用程序。

这是我的Dockerfile:

From node:12.18.3
WORKDIR /home/projects/nodejs
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]

这是server.js的内容:

'use strict';
const express = require('express');
const PORT = 8080;
const HOST = '0.0.0.0';
const app = express();
app.get('/', (req, res) => {
  res.send('Hello World');
});
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

我的容器构建使用4个文件:.dockerignoreserver.jsDockerfilepackage.json

==============================

此示例容器来自谷歌搜索dockerize应用..如果您进行搜索,则会找到示例代码。

================================================ ================== 无论如何

docker run -ti --rm -p 49160:8080  mycontainer
curl -i localhost:49160

这有效,但是当我尝试共享同一文件夹容器应用程序时无法运行

PS C:\Dashboard\Workspace\docker\nodejs> docker run -ti --rm -p 49160:8080  -v C:\Dashboard\Workspace\docker\projects\nodejs:/home/projects/nodejs  mycontainer
internal/modules/cjs/loader.js:968
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- /home/projects/nodejs/server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
    at Function.Module._load (internal/modules/cjs/loader.js:841:27)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/home/projects/nodejs/server.js:3:17)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/projects/nodejs/server.js' ]
}
PS C:\Dashboard\Workspace\docker\nodejs>`

请让我知道如何在Windows 10和linux dockerize容器应用程序之间共享文件夹。

0 个答案:

没有答案