Elasticsearch Docker stop似乎忽略了SIGKILL

我正在尝试在本地dev中使用Docker中的Elasticsearch。 虽然我可以find可以工作的容器,但是在发送docker stop点时,容器会悬挂默认的10秒,然后泊坞窗强行杀死容器。 我的假设是,ES不是在PID 1上,或者其他服务不能立即closures。

我很好奇,如果任何人都可以扩大,或解释为什么这更准确地发生。 我正在运行大量的testing和10s +关机只是烦人的时候,其他容器在1-2s后closures。

如果你不想等待10秒,你可以运行一个docker kill而不是一个docker stop 。 您也可以使用-t选项来调整docker stop上的超时时间,例如docker stop -t 2 $container_id只能等待2秒,而不是默认的10秒。

至于为什么它忽略了sigkill,这可能取决于你正在运行的图像(有多个elasticsearch)。 但是,如果pid 1是像/ bin / sh或/ bin / bash这样的shell,它不会传递信号。 如果pid 1是弹性search过程,可能会忽略该信号,或者10秒可能不足以完全清除和closures。