如何将容器上的文件夹与主机上的目录同步,以便可以删除容器并使用相同的数据重新创建容器。到目前为止,这是我的代码。
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);
我查看了文档,关于这种情况他们并不多。
最佳答案
您可以使用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关于node.js - 如何将主机和容器目录与Dockerode同步?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49657680/