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

Docker重启策略:unless-stopped中的‘or otherwise’具体指什么?

Docker unless-stopped 重启策略中 "or otherwise" 的具体场景

你提到的 "or otherwise" 指的是除了手动执行 docker stop 之外,所有会让容器进入主动停止状态的场景,具体包括:

  • 容器进程崩溃或运行失败导致停止:比如容器内的应用抛出未捕获异常、服务启动失败退出(非0退出码),且Docker重启策略尝试重启后仍无法恢复,最终容器进入停止状态。这种情况下,Docker daemon重启后不会再启动该容器。
  • 通过工具/API触发的停止操作:比如用 docker-compose stop 命令停止容器,或者通过Portainer、Docker Desktop等管理界面点击停止按钮,甚至是调用Docker API发送停止指令,这些操作和 docker stop 本质一致,都会标记容器为停止状态。
  • 强制终止后未重启:执行 docker kill 强制终止容器,如果容器没有被重启策略成功拉起(比如达到最大重启次数),容器进入停止状态后,daemon重启时不会启动它。
  • 宿主机关机时Docker自动停止容器:当宿主机关机时,Docker daemon会自动停止所有运行中的容器,这些被daemon主动停止的容器,在系统重启、daemon恢复后,unless-stopped 策略不会重启它们。
  • 资源限制触发的终止且未重启:如果给容器设置了内存/CPU限制,容器因资源耗尽被系统OOM Killer终止,且重启策略无法再次拉起它,容器处于停止状态后,daemon重启也不会启动。

简单来说,只要容器的最终状态是被主动标记为停止(而非临时退出等待重启),不管触发停止的方式是手动还是上述这些场景,unless-stopped 都不会在Docker daemon重启时重新启动该容器。

内容的提问来源于stack exchange,提问作者Eugen Konkov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:45:44