logo
1
1
Login
feat:完善level1-level4

🕵️‍♂️ Project Moby: The Silent Protocol

代号 Moby:静默协议

警告:系统核心已离线。全区进入紧急维护状态。 身份确认:DevOps 特勤组 - [学员姓名] 当前状态:等待指令...


📜 任务背景 (Mission Briefing)

我们的主控 AI "Moby" 遭遇不明故障,所有的服务容器(Containers)都已陷入瘫痪、死锁或损坏状态。整个开发环境目前处于静默隔离模式。

你被紧急唤醒。作为唯一的系统维护员,你需要通过终端(Terminal),逐一修复这些“坏掉”的舱室。

你的目标很简单:利用 Docker 技能,找到每一个关卡中隐藏的 Flag。

🎮 玩法规则

  1. Flag 格式:通常为 FLAG{...} 形式的字符串。
  2. 关卡解锁:每一关的 Flag,通常是 下一关镜像的 Tag
    • 例如:如果你在 Level 1 找到了 FLAG{secret},那么 Level 2 的拉取命令就是 docker pull [你的DockerID]/project-moby:level2-secret

🚩 关卡索引

Level 1: 沉默的黑匣子 (The Silent Black Box)

📍 场景描述: 控制台显示“生命维持系统”启动失败。当我们尝试启动这个容器时,它闪烁了一下就立刻熄灭了,屏幕上一片漆黑。

我们需要读取这个“黑匣子”在死前留下的最后信息。据信,通往下一层的密钥就藏在系统的标准输出 (Standard Output) 中。

🎯 任务目标

  1. 运行 Level 1 镜像。
  2. 找出容器启动失败前的日志信息。
  3. 获取 Level 2 的 Tag。

💻 操作指令

首先,尝试启动目标容器:

docker run docker.cnb.cool/opencamp/learning-docker/project-moby:level1

(你会发现什么都没发生,容器似乎直接退出了... 这正是问题所在。)

🕵️‍♂️ 提示 (Hints):

容器虽然停止运行了(Exited),但它并不是“消失”了。它只是变成了一具“尸体”。

Docker 会忠实地记录下容器生前说过的每一句话。

你需要用到 docker logs 命令。如果你不知道怎么用,试着查询 docker logs --help。

📝 提交校验: 当你找到类似 FLAG{...} 的字符串后,请将其作为 Tag 拼接到镜像名后,尝试拉取

“提示:如果日志也被‘抹除’了,说明里面混入了某种能够欺骗终端的控制信号。尝试使用管道符 (|) 配合 grep 命令来提取关键信息,或者将日志导出到文件分析。”


🔓 Level 2: 被封锁的气闸 (The Sealed Airlock)

前置需求:你必须拥有 Level 1 的 Flag 才能解锁此关卡。 当前状态:气闸控制台已上线,但物理连接被切断。

📍 场景描述: 我们成功从 Level 1 的黑匣子中恢复了系统访问权。现在,你需要进入 “气闸控制模块” 手动开启通道。

控制台运行在一个 Web 服务器上。但是,当你尝试连接时,你会发现它拒绝了所有的外部请求。防火墙图纸(Dockerfile)上标注端口是 80,但这可能是一个诱饵。

🎯 任务目标

  1. 启动 Level 2 容器。
  2. 找到 Web 服务真正监听的内部端口
  3. 利用 端口映射 (Port Mapping) 将其暴露到你的宿主机(比如 localhost:8000)。
  4. 用浏览器访问网页,获取下一关的 Flag。

💻 操作指令

首先,拉取并启动镜像:

docker run -d docker.cnb.cool/opencamp/learning-docker/project-moby:level2-[level1找到的Flag]

(注意:这次我们使用了 -d 让它在后台运行,因为这是一个 Web 服务)


👻 Level 3: 核心舱的幽灵 (The Ghost in the Shell)

前置需求:你必须拥有 Level 2 的 Flag。 当前状态:核心舱物理连接已恢复,但管理界面丢失。

📍 场景描述: 你成功启动了核心舱(Level 3),但所有的控制端口都被系统安全协议锁死了。你无法通过 Web 或日志获取任何有效信息。

扫描显示,密钥被物理写入了容器内部的一个硬盘扇区中。但我忘记了。

🎯 任务目标

  1. 启动 Level 3 容器(让它在后台运行)。
  2. 进入目标目录,找到隐藏的密钥文件。

💻 操作指令

启动目标容器:

docker run -d docker.cnb.cool/opencamp/learning-docker/project-moby:level3-[level2找到的Flag]

🔋 Level 4: 遗失的密钥 (The Missing Key)

前置需求:你必须拥有 Level 3 的 Flag。 当前状态:动力反应堆处于离线状态,启动程序报错。

📍 场景描述: 核心舱已修复,但整个空间站的能源系统(Reactor)依然没有响应。 启动日志显示,反应堆控制程序因为缺少“授权密钥”而拒绝启动。这是为了防止未授权操作而设计的安全机制。

我们需要你手动注入这个密钥,强制启动反应堆。

🎯 任务目标

  1. 启动 Level 4 容器(让它在后台运行)。
  2. 找到并注入密钥文件。

💻 操作指令

第一步:试错 运行容器,看看它报什么错:

docker run -d docker.cnb.cool/opencamp/learning-docker/project-moby:level4-[level3找到的Flag]

🕵️‍♂️ 知识点: 在 Docker 中,环境变量是配置应用程序最常用的方式(例如配置数据库密码 MYSQL_ROOT_PASSWORD)。如果忘记传递这些变量,容器通常会直接退出。