logo
0
0
WeChat Login
Forkfromopencamp/learning-docker/project-moby, ahead:main1 commits, behind:main2 commits

🕵️‍♂️ 代号 Moby:静默协议 (Project Moby)

"忘掉枯燥的 PPT 和死记硬背的参数。这一次,我们玩真的。"

⚠️ 紧急情况

系统核心 AI "Moby" 已离线。所有的服务容器(Containers)都已陷入瘫痪、死锁或损坏状态。整个开发环境目前处于静默隔离模式。

你,作为新晋的 DevOps 特勤员,是唯一能连接到控制台的人。

🎯 你的任务

这不是一次普通的作业,而是一场 CTF (Capture The Flag) 夺旗挑战。 我们将你扔进了一个支离破碎的 Docker 环境中。这里有 7 个损坏的关卡,每一关都对应一个真实的 Docker 核心技术点。

你需要利用手中的终端(Terminal)作为武器:

  1. 侦查:分析报错日志,寻找蛛丝马迹。
  2. 潜入:利用 exec 穿透防线,进入容器内部。
  3. 修复:挂载数据卷、打通网络、注入环境变量,让服务起死回生。
  4. 夺旗:在系统的深处找到那个神秘的字符串 —— Flag。

🏆 挑战规则

  • Level 1 - Level 6:循序渐进,拿到上一关的 Flag 才能解锁下一关的镜像 Tag。
  • Level 7 (BOSS):最终试炼。你将面对一份混乱不堪的代码和 Dockerfile,唯有构建出最精简、最高效的镜像,才能重启核心系统。
  • Level 8 (FINAL):提交你的成果!通过 Pull Request 提交你的解答,获得官方通关证书。

准备好了吗?启动你的 CNB。 第一关的入口已经在那里等着你了

🗂️ 关卡概览

关卡技术点难度
Level 1docker logs - 日志分析
Level 2docker run -p - 端口映射
Level 3docker exec - 容器内部访问⭐⭐
Level 4docker run -e - 环境变量注入⭐⭐
Level 5docker run -v - 数据卷挂载⭐⭐⭐
Level 6docker network - 容器网络通信⭐⭐⭐
Level 7Multi-stage Build - 镜像优化⭐⭐⭐⭐ (BOSS)
Level 8GitHub PR - 提交成果⭐ (FINAL)

🚀 快速开始

Level 1 - 日志分析

cd level1 docker build -t moby:level1 . docker run moby:level1 # 提示: 使用 docker logs 查看容器输出历史

Level 2 - 端口映射

cd level2 docker build -t moby:level2 . docker run moby:level2 # 提示: 程序监听的端口可能和 EXPOSE 不一样哦

Level 3 - 容器内部访问

cd level3 docker build -t moby:level3 . docker run -d --name level3 moby:level3 # 提示: 使用 docker exec 进入容器寻找隐藏文件

Level 4 - 环境变量注入

cd level4 docker build -t moby:level4 . docker run moby:level4 # 提示: 程序需要特定的环境变量才能启动

Level 5 - 数据卷挂载

cd level5 docker build -t moby:level5 . docker run moby:level5 # 提示: 程序需要读取主机上的配置文件

Level 6 - 容器网络通信

cd level6 docker build -f Dockerfile.vault -t moby:vault . docker build -f Dockerfile.client -t moby:client . # 提示: 两个容器需要在同一个自定义网络中才能通过名称通信

Level 7 - 镜像优化 (BOSS)

cd level7 # 查看臃肿的 Dockerfile cat Dockerfile.broken # 你的任务: 创建一个优化后的 Dockerfile,让镜像小于 10MB # 验证: ./verify.sh moby-core

Level 8 - 提交成果 (FINAL)

# 1. Fork 本仓库 # 2. 创建提交目录 mkdir -p submissions/YOUR_USERNAME/level7 # 3. 复制你的 Dockerfile 和完成记录 cp level7/Dockerfile submissions/YOUR_USERNAME/level7/ # 4. 创建 completion.json (参考 submissions/.template/) # 5. 本地验证 ./level8/validate.sh YOUR_USERNAME # 6. 提交 PR,获得通关证书!

🏁 Flag 与镜像 Tag 对应关系 (剧透警告!)

点击查看所有 Flag
关卡Flag解锁下一关镜像 Tag
Level 1FLAG{LOGS_TELL_THE_TRUTH}level2-logs_tell_the_truth
Level 2FLAG{PORTS_ARE_GATES}level3-ports_are_gates
Level 3FLAG{EXEC_IS_YOUR_WEAPON}level4-exec_is_your_weapon
Level 4FLAG{ENV_VARS_ARE_KEYS}level5-env_vars_are_keys
Level 5FLAG{VOLUMES_BIND_WORLDS}level6-volumes_bind_worlds
Level 6FLAG{NETWORKS_CONNECT_ALL}level7-networks_connect_all
Level 7FLAG{MASTER_OF_CONTAINERS_XMB}Level 8 解锁
Level 8FLAG{DOCKER_GRADUATE_XXXXXXXX}🏆 官方证书!

镜像仓库: docker.cnb.cool/opencamp/learning-docker/project-moby

示例: 完成 Level 4 获得 Flag 后,拉取 Level 5 镜像:

docker pull docker.cnb.cool/opencamp/learning-docker/project-moby:level5-env_vars_are_keys

📚 学习资源

完成挑战后,你将掌握以下 Docker 核心技能:

  • 日志分析: 使用 docker logs 排查问题
  • 端口映射: 理解容器网络和端口暴露
  • 容器调试: 使用 docker exec 进入运行中的容器
  • 配置管理: 通过环境变量和数据卷配置容器
  • 容器编排: 使用 Docker Network 实现容器间通信
  • 镜像优化: 使用多阶段构建减小镜像体积

祝你好运,特工!🕵️‍♂️

About

代号 Moby:静默协议 (Project Moby)

Language
Shell36.1%
Python24.7%
Dockerfile5.4%
C2.8%
Others31%