如何将主机和容器目录与Dockerode同步?

时间:2018-04-04 18:09:05

标签: node.js docker docker-volume


如何将容器上的文件夹与主机上的目录同步,以便我可以删除容器并使用相同的数据再次创建容器。到目前为止,这是我的代码。

let containerMeta = {
    Image: 'secret/image',
    AttachStdout: true,
    AttachStderr: true,
    Tty: true,
    ExposedPorts: {
      '19132/udp': {},
    },
    HostConfig: {
      PortBindings: {
        '19132/udp': [
          {
            HostPort: SERVER_PORT,
          },
        ],
      },
    },
  };

let container = await docker.createContainer(containerMeta);

我查看了文档,他们对这种情况并不多。

1 个答案:

答案 0 :(得分:1)

您可以使用HostConfig选项Binds

var Docker = require('dockerode');

var docker = new Docker({
  socketPath: '/var/run/docker.sock'
});

docker.createContainer({
  Image: 'ubuntu',
  Cmd: ['/bin/ls', '/stuff'],
  'Volumes': {
    '/stuff': {}
  },
  'HostConfig': {
    'Binds': ['/tmp:/stuff']
  }
}, function(err, container) {
  container.attach({
    stream: true,
    stdout: true,
    stderr: true,
    tty: true
  }, function(err, stream) {
    stream.pipe(process.stdout);

    container.start(function(err, data) {
      console.log(data);
    });
  });
});

您可以在Docker Engine API文档中阅读更多信息:https://docs.docker.com/engine/api/v1.37/#operation/ContainerCreate

我在dockerode的示例中复制的示例:https://github.com/apocas/dockerode/blob/master/examples/external_volume.js

相关问题