我尝试使用windows上的nodejs应用程序在docker容器中挂载卷。当我在cmd上尝试这个命令时:
docker运行-it -v C:\User\User\data:/-v:
它工作,容器包含卷。但是,如果我尝试使用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上使用相同的代码时,它可以正常工作。我怎么才能修好它?谢谢。
发布于 2017-04-30 07:38:45
您需要转义路径参数-如果没有正确的转义,绑定就被解析为C:UsersUserdata:/stuff:rw (\U映射到U,等等)。
所以而不是
'Binds': ['C:\Users\User\data:/stuff:rw']使用:
'Binds': ['C:\\Users\\User\\data:/stuff:rw']https://stackoverflow.com/questions/42995473
复制相似问题