簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM