在Windows上使用nodejs在Docker中装入卷

我尝试在窗口上使用nodejs应用程序在docker容器中装入卷。 当我在cmd上尝试这个命令时:

docker运行-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); }); }); }); 

问题是它没有打印(东西目录是空的)。 当我在mac上使用相同的代码时,它工作正常。 我该如何解决? 谢谢。

你需要逃避你的path定界符 – 没有正确的转义,绑定被parsing为C:UsersUserdata:/stuff:rw\U映射到只是U等)。

所以,而不是

 'Binds': ['C:\Users\User\data:/stuff:rw'] 

使用:

 'Binds': ['C:\\Users\\User\\data:/stuff:rw']