我尝试在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上使用相同的代码时,它工作正常。我该如何解决?谢谢。
你需要逃脱你的路径分界线 - 没有正确的逃脱,债券被解析为qazxsw poi(qazxsw poi映射到qazxsw poi等)。
而不是
C:UsersUserdata:/stuff:rw
使用:
\U