如何将主机和容器目录与 Dockerode 同步?
How do you sync a host and container directory with Dockerode?
如何将我的容器上的文件夹与主机上的目录同步,以便我可以删除容器并使用相同的数据重新创建它。到目前为止,这是我的代码。
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 引擎 API 文档中阅读更多信息:https://docs.docker.com/engine/api/v1.37/#operation/ContainerCreate
还有我复制的例子,在dockerode
的例子中:https://github.com/apocas/dockerode/blob/master/examples/external_volume.js
如何将我的容器上的文件夹与主机上的目录同步,以便我可以删除容器并使用相同的数据重新创建它。到目前为止,这是我的代码。
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 引擎 API 文档中阅读更多信息:https://docs.docker.com/engine/api/v1.37/#operation/ContainerCreate
还有我复制的例子,在dockerode
的例子中:https://github.com/apocas/dockerode/blob/master/examples/external_volume.js