从 Node.js 应用程序中管理 Docker 容器、镜像、卷和网络

45 min read

要从Node.js应用程序中管理Docker容器、镜像、卷和网络,您可以使用Docker SDK for Node.js。该SDK为Node.js提供了一个方便的接口来与Docker引擎进行交互。

下面是一些常见的用例示例:

  1. 运行一个容器:
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));
  1. 列出所有容器:
docker.listContainers({ all: true })
  .then(containers => console.log(containers))
  .catch(err => console.error('发生错误:', err));
  1. 构建一个镜像:
docker.buildImage('path/to/dockerfile', { t: 'my-image' })
  .then(stream => stream.pipe(process.stdout))
  .catch(err => console.error('发生错误:', err));
  1. 列出所有镜像:
docker.listImages()
  .then(images => console.log(images))
  .catch(err => console.error('发生错误:', err));
  1. 创建一个卷:
docker.createVolume({ Name: 'my-volume' })
  .then(volume => console.log('卷已创建。'))
  .catch(err => console.error('发生错误:', err));
  1. 列出所有卷:
docker.listVolumes()
  .then(volumes => console.log(volumes))
  .catch(err => console.error('发生错误:', err));
  1. 创建一个网络:
docker.createNetwork({ Name: 'my-network' })
  .then(network => console.log('网络已创建。'))
  .catch(err => console.error('发生错误:', err));
  1. 列出所有网络:
docker.listNetworks()
  .then(networks => console.log(networks))
  .catch(err => console.error('发生错误:', err));

这只是一些常见的用例示例。Docker SDK for Node.js还提供了其他许多有用的方法和选项,可以根据您的具体需求进行使用。