首页/云/Docker 容器速查/docker kill 发送信号终止容器
基础命令50 条

docker kill 发送信号终止容器

直接向容器主进程发信号,默认 SIGKILL 立即终止不等退出;也支持 -s 发送应用自定义信号(如 HUP 触发重载)。

Docker 容器速查云更新于 2026-10-13

docker kill 是什么

向容器主进程发送信号,默认发送强杀信号,立即终止进程。它不等待应用自行收尾,因此适合处理已经失去响应、优雅停止无效的场景;也可以指定其他信号,让支持的应用重载配置或做其它动作。

基本信息

语法docker kill [选项] CONTAINER...
默认信号强杀信号,进程立即终止
指定信号用信号名或编号指定,例如终止信号、重载信号
与优雅停止的差别不先发终止信号,也不等待
适用对象无响应的进程、需要特定信号的场景

典型使用场景

  • 进程卡死无响应:优雅停止已经无效,直接用强杀结束
  • 触发配置重载:向支持重载信号的应用发送信号,避免整容器重启
  • 自定义信号处理:某些服务用特定信号做日志切割或切换
  • 紧急处置:异常进程占用资源过高时快速终止
  • 测试信号处理:验证应用对不同信号的响应是否符合预期

常用示例

常用示例
docker kill web                    # 默认强杀
docker kill -s TERM web            # 发送终止信号,等同优雅停止的第一步
docker kill -s HUP web             # 支持重载的应用会重新读取配置
docker kill -s SIGUSR1 web         # 发出应用自定义信号
docker ps -a --filter status=exited    # 确认状态与退出码

常用信号与含义

信号常见含义使用提醒
强杀信号立即终止,不给收尾机会数据库类服务可能出现恢复流程
终止信号请求进程正常退出等价于优雅停止的第一步,只是不等待
挂起信号多数服务语义是重载配置也有服务用它终止进程,用前先确认
用户自定义一号由应用自行定义常用于日志切割或状态输出
中断信号相当于键盘中断对交互式应用有用,服务类应用少见

选用信号的思路

  • 需要数据完整时优先用优雅停止,不要直接用强杀
  • 只是想重载配置时,先确认应用对挂载信号的处理方式
  • 强制终止之后检查退出码,确认是否符合预期
  • 有状态服务强杀后要观察恢复情况,必要时做一致性校验
  • 把信号使用方式写进运维手册,避免不同人做出不同处置
与优雅停止的核心差别在于是否等待收尾。停止命令先请求退出并等待,超时才强杀;直接发送强杀信号则一步到位,没有缓冲。
同一信号在不同应用里语义可能完全不同。发信号前确认应用文档或代码中的处理逻辑,尤其是有状态服务,贸然发送可能造成数据不一致。

易错点

  • 对有状态服务直接强杀,数据文件处于不一致状态,重启后需要恢复甚至校验
  • 以为某个信号在所有应用里都是重载配置,实际在目标应用里表示终止
  • 容器已经停止时发送信号报错,被误判为容器不存在
  • 用它代替正常的停止流程成为习惯,长期积累导致数据风险

数据来源与参考

  • Docker 官方 CLI 参考:docker kill(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌