如何杀死nodejs中`spawn`创建的docker容器?

时间:2018-04-26 02:17:28

标签: node.js docker

我正在使用child_process.spawn启动Docker容器,如下所示:

const docker = spawn('docker', ['run', '-it', '--rm', 'DOCKER_IMAGE', 'bash'])

我想知道如何阻止这个过程。我尝试了下面的方法,但它没有停止容器:

docker.kill()

它可以与其他常规进程命令一起使用,但是docker可能不同。有没有人知道如何实现这个目标?

我知道停止docker容器的正确方法是运行docker stop命令。但我怎么知道上面代码中的容器ID?

1 个答案:

答案 0 :(得分:1)

<ChildProcess>.kill()没有结束这个过程,它只是发送信号&#39; SIGTERM&#39;默认情况下。因此docker.kill()会发送一个&#39; SIGTERM&#39;到docker客户端进程然后遇到这个问题Stop a running Docker container by sending SIGTERM短篇小说bash不是init,并且会忽略该信号。

你需要经营一个码头停靠点&#39;命令。

或者,您可以跳过sheller客户端并直接使用docker api https://github.com/apocas/dockerode