在Docker中,stop
和pause
是两种不同的容器状态管理命令,主要区别如下:
docker stop
SIGTERM
信号给容器内的主进程(PID 1),允许进程自行清理资源。SIGKILL
终止(可通过 -t
调整超时时间)。Exited
状态。docker start
重新运行。示例:
docker stop my_container # 停止容器
docker start my_container # 重新启动
docker pause
freezer
功能,暂停所有进程的执行(CPU/IO 冻结)。Paused
状态。docker unpause
立即恢复运行(从冻结点继续)。示例:
docker pause my_container # 冻结容器
docker unpause my_container # 恢复运行
特性 | docker stop |
docker pause |
---|---|---|
状态变化 | Running → Exited |
Running → Paused |
资源释放 | 完全释放 | 仅冻结(内存不释放) |
恢复方式 | 需重新启动(docker start ) |
立即恢复(docker unpause ) |
进程处理 | 终止进程 | 冻结进程 |
典型用途 | 长期停止服务 | 临时暂停(如调试备份) |
stop
。pause
(例如保留现场排查问题)。SIGTERM
,stop
可能导致强制终止(需检查应用逻辑)。通过理解这些差异,可以更精准地控制容器生命周期。