要从Node.js应用程序中管理Docker容器、镜像、卷和网络,您可以使用Docker SDK for Node.js。该SDK为Node.js提供了一个方便的接口来与Docker引擎进行交互。
下面是一些常见的用例示例:
- 运行一个容器:
const Docker = require('dockerode');
const docker = new Docker();
docker.createContainer({ Image: 'ubuntu', Cmd: ['/bin/bash'], name: 'my-container' })
.then(container => container.start())
.then(container => console.log('容器已启动。'))
.catch(err => console.error('发生错误:', err));
- 列出所有容器:
docker.listContainers({ all: true })
.then(containers => console.log(containers))
.catch(err => console.error('发生错误:', err));
- 构建一个镜像:
docker.buildImage('path/to/dockerfile', { t: 'my-image' })
.then(stream => stream.pipe(process.stdout))
.catch(err => console.error('发生错误:', err));
- 列出所有镜像:
docker.listImages()
.then(images => console.log(images))
.catch(err => console.error('发生错误:', err));
- 创建一个卷:
docker.createVolume({ Name: 'my-volume' })
.then(volume => console.log('卷已创建。'))
.catch(err => console.error('发生错误:', err));
- 列出所有卷:
docker.listVolumes()
.then(volumes => console.log(volumes))
.catch(err => console.error('发生错误:', err));
- 创建一个网络:
docker.createNetwork({ Name: 'my-network' })
.then(network => console.log('网络已创建。'))
.catch(err => console.error('发生错误:', err));
- 列出所有网络:
docker.listNetworks()
.then(networks => console.log(networks))
.catch(err => console.error('发生错误:', err));
这只是一些常见的用例示例。Docker SDK for Node.js还提供了其他许多有用的方法和选项,可以根据您的具体需求进行使用。