docker容器生命周期管理包含创建、启动、运行、暂停、停止和删除六个核心阶段,对应docker create、start、pause、stop、rm等命令,各阶段状态明确、操作精准,强调依据状态反馈执行相应命令而非猜测。

容器生命周期管理,核心是按状态精准操作:创建、启动、运行、暂停、停止、删除,每个阶段对应明确命令和预期行为,不靠猜测,靠状态反馈。
创建容器:先配置,再实例化
用 docker create 可提前定义好容器但不运行,适合需要精细配置的场景。比如挂载卷、设内存限制、配网络模式,都可在创建时定死:
- --name 指定易读名称,避免随机 ID 难追踪
- -v /host/path:/container/path 绑定宿主机目录,保障数据不随容器消失
- --memory 512m 限制内存上限,防 runaway 进程拖垮主机
- --restart=unless-stopped 设置重启策略,提升服务韧性
执行后容器状态为 created,此时它只是磁盘上的一个配置快照,没消耗 CPU 或网络资源。
启动与运行:区分 run 和 start 的使用时机
docker run 是“创建 + 启动”一步到位,适合快速验证或无状态服务;docker start 则专用于已存在但处于 exited 状态的容器——比如你昨天停掉的测试库,今天直接 start 就能复用原配置和卷数据。
- 后台运行必加 -d,否则终端被占住,容器也容易因终端关闭而退出
- 端口映射用 -p 8080:80,注意顺序是“宿主机:容器”,别写反
- 启动后立刻用 docker ps 确认状态是否为 running,别只看命令没报错就默认成功
暂停与恢复:冻结进程,不释放内存
docker pause 不杀进程,而是用 cgroups 冻结所有子进程,CPU 归零,但内存仍驻留。适用于短时维护、调试前保现场,或临时腾出 CPU 资源给高优任务。
- 暂停后状态变为 paused,docker ps 会单独列出
- docker unpause 恢复极快,几乎无延迟,状态回到 running
- 注意:pause 不释放内存,长时间暂停反而浪费资源,该 stop 就 stop
停止与清理:优雅退出优先,强制手段留作兜底
docker stop 发送 SIGTERM,给应用 10 秒(可自定义)做清理(如刷盘、断连接),是生产环境首选;docker kill 直发 SIGKILL,立即终结,只在卡死无响应时用。
- 停止后容器状态为 exited,仍保留在系统中,可用 docker ps -a 查到
- 删除前务必确认状态是 exited,否则 docker rm 会报错;强行删运行中容器需加 -f
- 批量清理可组合:docker rm $(docker ps -aq --filter "status=exited"),避免手动逐个删











