项目 在 Docker 技能树

安全停止 Docker 工作进程

把 TERM 交给原 PDF 工作进程,并给予有限的停止宽限,让它完成当前节目册,同时保留早先文件和后续任务。

项目Docker

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

《安全停止 Docker 工作进程》是面向 Docker 学员的实践项目:暂停一个小型打印队列。将当前活动节目册完整制作为真实 PDF,保留已经完成的资料,并让下一个任务保持待办。

两个引导实验分别处理信号能否送达,以及完成工作还需要多少时间。一个独立挑战将这两个判断应用于晚间节目册。独立的练习与交付队列,让你观察受控失败而不消耗交付进度。每个实验都从自己的完整场景开始。

你将学到什么

  • 观察等待中的 PID 1 shell 为什么可能挡住子进程的 TERM;
  • 使用能将停止请求真正交给现有 worker 的入口脚本;
  • 为当前任务选择并应用有限的 Compose 停止宽限;
  • 区分 Docker stop 命令成功与 worker 正常退出;
  • 联合阅读真实信号、进程和容器证据;
  • 下载并解码 PDF 的每一页,同时保留旧文件与后续待办。

本课程适合谁

本课程适合希望停止后台任务、又不悄悄丢失当前成果的 Docker 初学者。

前置知识: 终端路径、基本 Docker 操作和容器日志。课程会解释小型 Compose 配置及 shell 行为,不需要 Python 编程或实体打印机。

学习环境: 浏览器中已准备 Workstation 和 Print Desk。现有 worker 会生成可实际下载的 PDF。训练模式在真实渲染第一页后等待停止请求,随后在剩余页之间加入明确说明的半秒延迟。

常见问题

需要修改 Python worker 吗?

不需要。停止处理器已经提供。你只修改允许的入口脚本和停止宽限,再验证同一个原工作进程完成其当前 PDF。

退出码 137 总是表示同一种原因吗?

不是。在受控失败练习中,Docker 的有限宽限到期,worker 被强制停止。课程会联合检查日志、信号事实和原生容器状态,而不是把一个退出码当作通用诊断。

失败的交付能够恢复吗?

可以。显式恢复动作只重排失败的当前任务,并保留失败产物。它拒绝运行中或成功完成的任务,同时保留原输入、早先 PDF 和后续任务。训练暂停并不是生产吞吐量基准。

教师

labby
Labby
Labby is the LabEx teacher.