[英]Mount a volume in docker using nodejs on windows
我嘗試在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上使用相同的代碼時,它工作正常。 我該如何解決? 謝謝。
你需要轉義你的路徑分隔符 - 沒有正確的轉義,綁定被解析為C:UsersUserdata:/stuff:rw
( \\U
映射到U
,等等)。
而不是
'Binds': ['C:\Users\User\data:/stuff:rw']
采用:
'Binds': ['C:\\Users\\User\\data:/stuff:rw']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.