You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器重启策略疑问:SIGHUP未触发自动重启及故障重启咨询

Docker容器重启策略相关问题

我给一个已运行的容器设置了always重启策略,期望它在崩溃、系统重启等场景下自动重启,但遇到了以下情况:

  • 手动发送SIGHUP信号终止容器后,容器并未自动启动,执行命令及结果如下:
sudo docker kill --signal=SIGHUP 5b61a7735329
5b61a7735329
$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
  • 执行重启Docker服务的命令后,容器自动启动,已通过docker ps验证:
$ sudo systemctl restart docker

现咨询两个问题:

  1. 为何手动发送SIGHUP信号时容器未自动启动?
  2. 容器是否会在任意Docker故障时自动重启?

问题解答

1. 手动发送SIGHUP信号容器未自动启动的原因

Docker的always重启策略仅针对容器进程异常退出或Docker守护进程重启/恢复的场景触发,而docker kill --signal=SIGHUP属于用户主动发起的容器终止操作,会被Docker判定为用户主动停止容器,而非进程自身崩溃,因此不会触发重启策略。

简单来说,docker kill是主动停止指令,Docker会记录这个用户操作状态,不会自动重启该容器;只有当容器因自身错误崩溃、异常退出,或者Docker服务重启时,always策略才会生效。

2. 容器不会在任意Docker故障时自动重启

always重启策略的生效依赖Docker守护进程恢复运行:

  • 如果Docker守护进程仅出现短暂故障但未退出,容器不会自动重启;
  • 只有当Docker守护进程完全退出并重新启动后,才会检查所有设置了always策略的容器并重启它们;
  • 若Docker守护进程彻底挂死无法自行恢复,容器自然无法被启动。

另外,若容器是被用户主动停止(比如docker stop、docker kill),即使后续Docker重启,也不会自动启动该容器,需手动启动。


内容的提问来源于stack exchange,提问作者Zama Ques

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 08:54:55