docker pause/unpause可快速冻结或恢复容器进程,不重启、不丢状态;暂停时cpu归零但内存保留,网络和id不变,仅适用于running容器,与stop/kill有本质区别。
用 docker pause 和 docker unpause 就能快速暂停和恢复容器,不重启、不丢状态,进程直接冻结或解冻。
暂停运行中的容器
只能对 running 状态的容器执行 pause。它会冻结容器内所有进程,CPU 使用降为零,但内存仍保留,容器 ID 和网络配置不变。
- 暂停单个容器:
docker pause myapp(用容器名或前几位 ID 都可以) - 暂停多个容器:
docker pause db redis nginx - 暂停后查看状态:
docker ps中对应容器的 STATUS 会显示 Paused
恢复被暂停的容器
unpause 不会重新加载配置或重启进程,只是让原来挂起的进程继续执行,响应速度接近即时。
- 恢复单个容器:
docker unpause myapp - 恢复多个容器:
docker unpause db redis - 恢复后状态变回 Up X minutes,和暂停前连续计时
和 stop/kill 的关键区别
pause/unpause 是轻量级状态切换,和 stop、kill 有本质不同:
- docker stop:发 SIGTERM,等待优雅退出,超时后 SIGKILL;容器进入 exited 状态,进程彻底终止
- docker kill:直接发 SIGKILL,强制终止,不留缓冲
- docker pause:不终止进程,只挂起;容器仍处于 paused 状态,内存未释放,下次 unpause 可秒级恢复
适用场景建议
适合需要临时“按住”服务但不想丢失上下文的场合:
- 宿主机要做紧急维护,又不想让容器重连或丢 session
- 调试时想卡在某个中间状态检查内存或网络连接
- 资源紧张时暂时冻结非关键容器,腾出 CPU 给高优任务
- 做一致性快照前,先 pause 确保应用静止(配合 docker commit 或外部备份工具)











