当前位置: 首页 > news >正文

容器生命周期

容器生命周期(Container Lifecycle)是指单个容器从 创建 → 启动 → 运行 → 暂停 / 恢复 → 停止 → 删除 的完整状态流转与管理过程。

它是 Docker/containerd 运行时的核心机制,也是 Kubernetes 管理 Pod 内容器的基础。

一、容器核心状态(Docker/containerd 标准)

容器有 5 个标准稳定状态 + 2 个临时状态:

状态 英文 含义 关键特征
已创建 Created 容器已初始化、未启动 有元数据 / 文件系统,无进程,不占 CPU / 内存
运行中 Running 主进程(PID 1)正常运行 占用资源、提供服务
已暂停 Paused 进程冻结(cgroup freezer) 内存保留、不调度 CPU
已退出 Exited/Stopped 主进程终止(0 / 非 0 退出码) 文件系统保留、可重启 / 查看日志
已删除 Removed/Deleted 彻底销毁、释放所有资源 不可恢复
重启中 Restarting 临时:崩溃后自动重启 常见 CrashLoopBackOff
已死亡 Dead 异常终态(OOM / 内核杀死) 无法恢复,需清理

状态流程简图

Created → Running ↔ Paused↘Stopped/Exited → Restarting → Running↘Removed

二、生命周期全流程(标准步骤)

1. 创建(Create)

  • 命令:docker create / docker run(run = create + start)

  • 运行时动作:

    • 拉取镜像(本地不存在)
    • 创建只读层 + 可写层(Union FS)
    • 分配 Namespace(PID/Net/MNT/UTS/IPC/User)
    • 配置网络、端口、卷、环境变量
    • 写入元数据 → 状态:Created

2. 启动(Start)

  • 命令:docker start <容器ID>

  • 动作:

    • 初始化 cgroup 资源限制
    • 启动 PID 1 主进程(ENTRYPOINT/CMD)
    • 状态变为:Running

3. 运行(Running)

  • 容器正常服务阶段
  • 运行时持续监控进程状态
  • 可执行:exec(进入容器)、pause(暂停)、logsstats

4. 暂停 / 恢复(Pause / Unpause)

  • docker pause:冻结所有进程(cgroup freezer)
    • 状态:Paused
    • 内存保留、不占 CPU 时间片
  • docker unpause:恢复 → Running

5. 停止(Stop)— 优雅终止

  • 命令:docker stop -t <秒数>(默认 10s)

  • 流程:

    1. 向 PID 1 发送 SIGTERM(优雅退出信号)
    2. 等待宽限期(grace period)
    3. 超时未退出 → 发送 SIGKILL 强制杀死
    4. 进程退出 → 状态:Exited/Stopped

6. 强制杀死(Kill)

  • docker kill:直接发 SIGKILL
  • 无优雅清理,可能丢数据

7. 删除(Remove)

  • 命令:docker rm <容器ID>(运行中需先 stop 或 -f)
  • 动作:
    • 删除可写层、网络资源、元数据
    • 释放所有占用资源
    • 状态:Removed(彻底消失)
http://www.jsqmd.com/news/556402/

相关文章:

  • 猫抓Cat-Catch:如何用浏览器扩展精准捕获网页媒体资源?
  • Python与Abaqus联合作战:高效自动化仿真实战指南
  • EasyExcel实战:如何用CellWriteHandler给特定单元格加红色背景(附依赖冲突解决方案)
  • OpenInTerminal:重新定义macOS终端操作效率的必备工具
  • [具身智能-158]:三个最适合入门的具身智能落地场景,并规划了一条从“单一功能”到“通用智能”的演进路径。
  • CAJ转PDF高效解决方案:让学术文献跨平台阅读不再困难
  • 从月均$12,800到$4,590——某金融级MCP平台成本重构全路径(含可复用Dockerfile/CostPolicy.yaml)
  • 容器退出码与异常场景(排障)
  • HunterPie完全指南:5分钟掌握《怪物猎人世界》最强游戏覆盖层
  • 2026Claude 4.6镜像硬核技术拆解:百万上下文、Agent Teams与宪法AI架构深度解析
  • Qwen3-Omni社区生态:从开源模型到商业应用的发展路线图
  • GTSAM非线性优化深度解析:Gauss-Newton算法在SLAM中的应用
  • 汽车雷达工程师必看:深入对比MIMO雷达的TDMA、FDMA与DDMA方案,谁才是ADAS的性价比之选?
  • Display-switch快速入门:10分钟配置多显示器自动切换
  • 企业座机来电显示LOGO哪家能实现?专业品牌认证服务商横向测评 - 企业服务推荐
  • 本地AI部署难题?LocalAI让普通电脑变智能服务器
  • 从‘鲁棒性’到‘抖振抑制’:积分滑模控制器的前世今生与工业应用展望
  • 终极指南:如何在手机上轻松刷入Momentum-Firmware
  • Hybrids.js热模块替换终极指南:零配置开发体验优化
  • 消防水池液位显示器源头厂家推荐 - WHSENSORS
  • 如何用SlopeCraft轻松创建惊艳的Minecraft立体地图画:5步快速上手指南
  • Cryptomator for Android技术解析:从架构设计到实战部署的完整指南
  • PDF-Guru:终极免费的PDF处理工具,一站式解决PDF加密保护与文件管理需求
  • 北美运营商黑名单:bootloader-unlock-wall-of-shame揭示ATT、Verizon等限制内幕
  • 折腾了很多版后,我留下了这份 Codex 配置文件(附注释)
  • 常用命令速查
  • SDMatte开源AI模型实测:无需训练,本地部署即支持玻璃/薄纱/发丝级抠图
  • 三模块协同:用NeMo构建企业级智能语音助手的完整指南
  • 2026年市面上铜包钢公司,非磁性接地引出装置/覆铜扁钢/地铁专用接地引出装置/长效防腐降阻剂,铜包钢公司选哪家 - 品牌推荐师
  • .NET 4.0下HttpWebRequest请求HTTPS报错?试试这个注册表修改方案