docker stop 与 docker kill的区别

Posted edwin_716

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker stop 与 docker kill的区别相关的知识,希望对你有一定的参考价值。

docker stop 与 docker kill的区别

docker stop 与 docker kill 均可以将容器停掉,但二者究竟有什么区别呢?首先,摘录一下官网对这两个功能的描述:


docker stop: Stop a running container (send SIGTERM, and then SIGKILL after grace period) [...] The main process inside the container will receive SIGTERM, and after a grace period, SIGKILL. [emphasis mine]

docker kill: Kill a running container (send SIGKILL, or specified signal) [...] The main process inside the container will be sent SIGKILL, or any signal specified with option --signal. [emphasis mine]
 


docker stop,支持“优雅退出”。先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。

 docker kill,发送SIGKILL信号,应用程序直接退出。

 线上应用优雅退出十分必要。docker stop也不是docker独有的设计,lxc和google borg系统都有类似设计,即在发送SIGKILL之前,发送SIGTERM信号通知任务。


以上是关于docker stop 与 docker kill的区别的主要内容,如果未能解决你的问题,请参考以下文章

docker stop 或者 docker kill 不能停止容器

如何优雅关闭 Docker 中的 Nginx

docker-基础命令

Docker命令学习

docker volume

docker相关操作