警告:系统核心已离线。全区进入紧急维护状态。 身份确认:DevOps 特勤组 - [学员姓名] 当前状态:等待指令...
我们的主控 AI "Moby" 遭遇不明故障,所有的服务容器(Containers)都已陷入瘫痪、死锁或损坏状态。整个开发环境目前处于静默隔离模式。
你被紧急唤醒。作为唯一的系统维护员,你需要通过终端(Terminal),逐一修复这些“坏掉”的舱室。
你的目标很简单:利用 Docker 技能,找到每一个关卡中隐藏的 Flag。
FLAG{...} 形式的字符串。FLAG{secret},那么 Level 2 的拉取命令就是 docker pull [你的DockerID]/project-moby:level2-secret。📍 场景描述: 控制台显示“生命维持系统”启动失败。当我们尝试启动这个容器时,它闪烁了一下就立刻熄灭了,屏幕上一片漆黑。
我们需要读取这个“黑匣子”在死前留下的最后信息。据信,通往下一层的密钥就藏在系统的标准输出 (Standard Output) 中。
🎯 任务目标:
💻 操作指令:
首先,尝试启动目标容器:
docker run docker.cnb.cool/opencamp/learning-docker/project-moby:level1
(你会发现什么都没发生,容器似乎直接退出了... 这正是问题所在。)
🕵️♂️ 提示 (Hints):
容器虽然停止运行了(Exited),但它并不是“消失”了。它只是变成了一具“尸体”。
Docker 会忠实地记录下容器生前说过的每一句话。
你需要用到 docker logs 命令。如果你不知道怎么用,试着查询 docker logs --help。
📝 提交校验: 当你找到类似 FLAG{...} 的字符串后,请将其作为 Tag 拼接到镜像名后,尝试拉取
“提示:如果日志也被‘抹除’了,说明里面混入了某种能够欺骗终端的控制信号。尝试使用管道符 (|) 配合 grep 命令来提取关键信息,或者将日志导出到文件分析。”
前置需求:你必须拥有 Level 1 的 Flag 才能解锁此关卡。 当前状态:气闸控制台已上线,但物理连接被切断。
📍 场景描述: 我们成功从 Level 1 的黑匣子中恢复了系统访问权。现在,你需要进入 “气闸控制模块” 手动开启通道。
控制台运行在一个 Web 服务器上。但是,当你尝试连接时,你会发现它拒绝了所有的外部请求。防火墙图纸(Dockerfile)上标注端口是 80,但这可能是一个诱饵。
🎯 任务目标:
💻 操作指令:
首先,拉取并启动镜像:
docker run -d docker.cnb.cool/opencamp/learning-docker/project-moby:level2-[level1找到的Flag]
(注意:这次我们使用了 -d 让它在后台运行,因为这是一个 Web 服务)
前置需求:你必须拥有 Level 2 的 Flag。 当前状态:核心舱物理连接已恢复,但管理界面丢失。
📍 场景描述: 你成功启动了核心舱(Level 3),但所有的控制端口都被系统安全协议锁死了。你无法通过 Web 或日志获取任何有效信息。
扫描显示,密钥被物理写入了容器内部的一个硬盘扇区中。但我忘记了。
🎯 任务目标:
💻 操作指令:
启动目标容器:
docker run -d docker.cnb.cool/opencamp/learning-docker/project-moby:level3-[level2找到的Flag]
前置需求:你必须拥有 Level 3 的 Flag。 当前状态:动力反应堆处于离线状态,启动程序报错。
📍 场景描述: 核心舱已修复,但整个空间站的能源系统(Reactor)依然没有响应。 启动日志显示,反应堆控制程序因为缺少“授权密钥”而拒绝启动。这是为了防止未授权操作而设计的安全机制。
我们需要你手动注入这个密钥,强制启动反应堆。
🎯 任务目标:
💻 操作指令:
第一步:试错 运行容器,看看它报什么错:
docker run -d docker.cnb.cool/opencamp/learning-docker/project-moby:level4-[level3找到的Flag]
🕵️♂️ 知识点: 在 Docker 中,环境变量是配置应用程序最常用的方式(例如配置数据库密码 MYSQL_ROOT_PASSWORD)。如果忘记传递这些变量,容器通常会直接退出。