我正在使用child_process.spawn
启动Docker容器,如下所示:
const docker = spawn('docker', ['run', '-it', '--rm', 'DOCKER_IMAGE', 'bash'])
我想知道如何阻止这个过程。我尝试了下面的方法,但它没有停止容器:
docker.kill()
它可以与其他常规进程命令一起使用,但是docker可能不同。有没有人知道如何实现这个目标?
我知道停止docker容器的正确方法是运行docker stop
命令。但我怎么知道上面代码中的容器ID?
答案 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