---
url: /courses/cloud-platform-build-management/lab-09/index.md
---
# 实训 09：阶段故障考核

项目限定为 `~/cloud-course/exam-09`，名称为 `cloud-course-exam-09`。

## 一、评分证据

* 基线：15 分；
* 原始故障与取证：25 分；
* 假设和下一条检查：20 分；
* 最小修复：15 分；
* 回归与自动验收：15 分；
* 清理、脱敏和 Word 规范：10 分。

## 二、安全边界

* 只操作当前考核项目。
* 故障注入后，未完成原始取证前不重启、不重建。
* 不停止全部容器，不删除卷，不开放公网端口。
* 不查看教师答案或他组报告。

## 三、建立基线

```bash
[ECS] cd ~/cloud-course/exam-09
[ECS] docker compose config --services
[ECS] docker compose config --quiet
[ECS] docker compose up -d
[ECS] docker compose ps
[ECS] curl -sS http://127.0.0.1:18009/api/status.json
```

截图 1：项目、两项服务、回环端口与正常 JSON。

## 四、等待故障注入

基线经教师核对后停止操作。教师宣布完成之前，不刷新或重建环境。

## 五、保存原始故障

```bash
[ECS] docker compose ps -a
```

```bash
[ECS] curl --max-time 8 -sS -o /dev/null -w \
  'http=%{http_code} time=%{time_total}\n' \
  http://127.0.0.1:18009/api/status.json
```

```bash
[ECS] docker compose logs --since 2m --tail 30 web api
```

截图 2：三类原始证据。此时仍不能执行修复。

## 六、提交临时判断

在 Word 中填写：

```txt
原始现象：
组件状态：
HTTP 证据：
日志关键行：
已经排除：
当前假设：
下一条只读检查：
若假设不成立：
```

教师只核对格式和安全边界，不确认答案。

## 七、最小修复

先写变更说明，再执行自己选择的项目级修复。禁止删除项目、卷或重装 Docker。

截图 3：修复命令、目标对象和命令结果。

## 八、回归验证

```bash
[ECS] docker compose ps
[ECS] curl -sS http://127.0.0.1:18009/api/status.json
[ECS] docker compose logs --since 1m --tail 20 web api
[ECS] bash verify.sh
```

截图 4：服务状态、成功 JSON 和自动验收。

## 九、清理

```bash
[ECS] docker compose down
[ECS] docker compose ps -a
[ECS] ss -lnt 'sport = :18009'
```

截图 5：空项目列表与端口释放。

## 十、提交

```txt
班级_学号_姓名_第09次课_阶段故障考核报告.docx
```

只提交 Word 到智慧职教“第09次课”。
