💡 类型 1:ECR 镜像拉取失败类题
📜 题干常见描述:
The ECS task failed to start with the error "CannotPullContainerError"
🧠 正确思路选项常见有:
| 正确选项关键字 | 说明 |
|---|---|
Add AmazonECSTaskExecutionRolePolicy | 缺少拉取镜像权限 |
aws ecr get-login-password | 没登录就拉镜像 |
Ensure repository exists and image is pushed | 仓库/镜像不存在 |
❌ 错误选项识别法:
- 修改 Dockerfile ➜ 没关系,问题不在 Dockerfile
- 修改 ECS 服务名称 ➜ 不相关
- 重启 ECS 服务 ➜ 不解决根本问题
💡 类型 2:端口映射 / 容器访问失败
📜 常见描述:
The application runs but is not accessible via the ALB
🧠 判断点:
| 错误点 | 应选项建议 |
|---|---|
| 容器未监听 0.0.0.0 | 修改 Dockerfile CMD 为 --host=0.0.0.0 |
| 安全组未放通 | 修改 SG 允许 80/443 |
| ALB 健康检查失败 | 修改健康检查路径或容器端口 |
💡 类型 3:Fargate 网络问题
📜 常见描述:
Fargate task stuck in PENDING
🧠 正确选项建议:
- Task Definition 缺少
awsvpc网络模式(Fargate 专用) - 子网无 NAT 网关 ➜ 无法联网
- 安全组未放通 ➜ 无法访问
💡 类型 4:日志配置问题
📜 常见描述:
No logs appear in CloudWatch
🧠 正确选项建议:
- 添加 logConfiguration 到 Task Definition
- ECS Execution Role 缺少
logs:PutLogEvents - 指定的 log group 不存在且未启用 auto create
🧪 模拟示例题 + 解析
题目:
A developer pushes a Docker image to ECR and starts an ECS Fargate task using it. The task fails with
CannotPullContainerError. What should they do?
🧠 正确选项:
- ✅ Ensure the ECS task execution role has
AmazonECSTaskExecutionRolePolicyattached
📵 错误示例选项(不能选):
- ❌ Restart the ECS cluster
- ❌ Modify the Dockerfile to expose port 80
- ❌ Rebuild the image
📘 总结:零环境也能满分的记忆口诀
🧠 记四招口诀,简单容器题就能轻松做:
拉镜像要权限,端口要放通,Fargate 要网络,日志靠配置
- 镜像拉不动 ➜ IAM 权限 / 登录
- 服务访问不了 ➜ 安全组 / ALB / CMD
- 任务卡 pending ➜ 网络 / 子网 / awsvpc
- 日志没输出 ➜ logs 权限 + 配置
📩 如果你手上有某道题的截图、选项或题干,我可以 逐题分析 你选哪个才对。要不要发我一题练练?