Docker停止:当您发出docker停止命令时,会向该容器内的进程发送硬件信号。在docker stop的情况下,我们发送一条sig术语消息,它是终止信号的缩写,它是一条消息,进程将接收到该消息,告诉它基本上按自己的时间关闭。
SIGTERM公司当您想停止容器中的进程并关闭容器时,就可以使用它,您想给容器中的这个进程一点时间来关闭它自己并进行一些清理。
许多不同的编程语言都能让你在代码库中监听这些信号,一旦你收到信号,你就可以尝试进行一些清理,或者保存一些文件或发出一些消息或类似的东西。
另一方面docker kill命令问题是一个sig kill或kills信号,发送给容器内正在运行的主进程,因此kill本质上意味着您必须立即关闭,并且不需要做任何额外的工作。
因此,理想情况下,我们总是使用docker stop命令停止容器,以便让正在运行的进程在其中有一点时间自行关闭,否则,如果感觉容器已锁定,而它没有响应docker stop命令,那么我们可以发出docker kill命令。
关于docker stop有一点奇怪或有趣的事情,当向容器发出docker stop10秒后容器没有自动停止时,docker会自动返回到发出docker kill命令。
所以,在docker站,基本上是我们表现得很好,但实际上只有10秒钟的时间关闭。
ping命令就是一个很好的例子。sudo docker运行busybox ping google.com现在,如果你想停止容器,如果你使用停靠站container_id,您将看到它需要10秒钟才能关闭,因为ping命令没有正确响应SIGTERM消息。换句话说,ping命令实际上没有能力说,哦,是的,我知道你想让我关机。
因此,在我们等待了10秒钟后,最终向它发送了杀戮信号,告诉它嘿,ping,你完成了,然后关机。
但如果你使用docker kill container_id你会看到它马上就死了。