使用Windows上的nodejs在docker中装入卷

问题描述 投票:1回答:1

我尝试在windows上使用nodejs app在docker容器中安装一个卷。当我在cmd上尝试此命令时:

docker run -it -v C:\ Users \ User \ data:/ stuff:rw ubuntu bash

它工作,容器包含卷。但是如果我尝试使用nodejs(dockerode模块)来做这件事,它就不起作用了。我的代码:

var dockerode = require('dockerode');
var docker = new dockerode();
var stream = require('stream');

docker.createContainer({
    Image: 'ubuntu',
    Cmd: ['ls', 'stuff'],
    'Volumes': {
      '/stuff': {}
    },
    'Binds': ['C:\Users\User\data:/stuff:rw']
  }, function(err, container) {
    container.attach({
      stream: true,
      stdout: true,
      stderr: true,
      tty: true,
      'Binds': ['C:\Users\User\data:/stuff:rw']
    }, function(err, stream) {
      stream.pipe(process.stdout);

      container.start({
        'Binds': ['C:\Users\User\data:/stuff:rw']
      }, function(err, data) {
        console.log(data);
      });
    });
  });

问题是它什么都不打印(stuff目录为空)。当我在mac上使用相同的代码时,它工作正常。我该如何解决?谢谢。

node.js windows docker volumes dockerode
1个回答
0
投票

你需要逃脱你的路径分界线 - 没有正确的逃脱,债券被解析为qazxsw poi(qazxsw poi映射到qazxsw poi等)。

而不是

C:UsersUserdata:/stuff:rw

使用:

\U
© www.soinside.com 2019 - 2024. All rights reserved.