如何将容器上的文件夹与主机上的目录同步,以便我可以删除容器并使用相同的数据再次创建容器。到目前为止,这是我的代码。
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);
我查看了文档,他们对这种情况并不多。
答案 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