🚀 Scenario 05 — The Docker Escape Room Challenge
🎯 Scenario Goal
Transform learners from Docker users into Docker HEROES through:
✅ Real-world puzzles ✅ Gamification and fun storytelling ✅ Live problem-solving ✅ Hands-on Docker commands ✅ Hilarious and unforgettable learning
🧩 The Storyline
You and your workshop friends have been kidnapped by Dr. NullPointer, the evil villain of the cloud.
He’s locked you inside the Docker Vault, a high-security digital prison guarded by containers.
To escape, you must:
- Solve five Docker puzzles
- Discover hidden secrets
- Hack your way through broken networks
- Outsmart containers with memory issues
- Master multi-stage builds to save your digital life!
Fail…and you’ll be trapped running endless hello-world containers for eternity.
🏆 The Escape Flow
✅ How It Works
- You’ll see a clue in the web browser.
- You’ll have a live shell to run real Docker commands.
- Enter your answer in the browser.
- If correct → next door unlocks.
- If wrong → Dr. NullPointer taunts you mercilessly.
✅ Game Mechanics
✅ Time challenge: Solve all puzzles before Dr. NullPointer triggers a CI/CD pipeline apocalypse.
✅ Score system:
- +10 points for each puzzle
- -3 points for failed attempts
✅ Leaderboards → bragging rights!
✅ Funny taunts → randomized villain insults
✅ Real consequences:
- Containers running
- Logs filling up
- Resource exhaustion
🕹️ The Five Docker Puzzles
⭐ Puzzle 1 — The Secret Vault (Volumes)
Dr. NullPointer’s Message:
“Mwahaha! I’ve hidden the Escape Key inside a secret volume.
It’s buried in:/secret/code.txtInside a Docker volume called:vault-volumeFind it… or you’ll be stuck in/dev/nullforever.”
What Learners Must Do
Run:
docker run --rm -v vault-volume:/mnt busybox cat /mnt/secret/code.txt
````
✅ Copy secret code → paste into web UI
---
### Dr. NullPointer Taunts:
* “That’s adorable… you think you can just `docker run` your way out?”
* “Even my cat knows how to mount a volume.”
---
✅ Insight:
> “Volumes persist data across containers. They’re like hidden treasure chests in Docker.”
---
---
## ⭐ Puzzle 2 — The Broken Bridge (Networking)
---
### Dr. NullPointer’s Message:
> “Your precious app can’t talk to its database!
> I’ve trapped them in **different Docker networks.**
> Fix it… or your packets will wander the void!”
---
### Scenario:
* Redis running in `networkA`
* Flask app running in `networkB`
---
### What Learners Must Do
Run:
```bash
docker network connect networkA redis-server
✅ Test connectivity:
docker run --rm --network networkA redis redis-cli -h redis-server ping
✅ Enter “PONG” into web UI → unlocks next puzzle
Dr. NullPointer Taunts:
- “Packets? Lost. Like your hopes.”
- “Network errors are my love language.”
✅ Insight:
“Custom Docker networks let containers talk to each other. Default bridge networks isolate them unless connected explicitly.”
⭐ Puzzle 3 — The Out-of-Memory Monster
Dr. NullPointer’s Message:
“Oops… your container ran out of memory. It keeps crashing with:
Cannot allocate memoryIncrease its memory limit… or I’ll throttle you!”
What Learners Must Do
Re-run the failing container:
docker run -d --memory=512m busybox sh -c "dd if=/dev/zero of=/dev/null bs=1M"
✅ Check logs:
docker logs <container_id>
✅ Submit confirmation of successful run.
Dr. NullPointer Taunts:
- “Memory? You humans are always running out of it.”
- “OOM Killer is my best friend.”
✅ Insight:
“Docker lets you set memory and CPU limits. It’s like giving containers strict lunch money.”
⭐ Puzzle 4 — Secrets in Plain Sight
Dr. NullPointer’s Message:
“I’ve hidden my evil flag as an environment variable inside a running container:
SECRET_FLAG=escape_dockerFind it… or your logs will overflow!”
What Learners Must Do
Run:
docker inspect container123
✅ Locate environment variable:
SECRET_FLAG=escape_docker
✅ Submit “escape_docker” in web UI.
Dr. NullPointer Taunts:
- “Nice try. I’ve hidden secrets deeper than your debugging skills.”
- “Inspect me all you want. You’ll never escape.”
✅ Insight:
“
docker inspectreveals a container’s secrets: environment variables, mount paths, networks, and more.”
⭐ Puzzle 5 — The Multi-Stage Finale
Dr. NullPointer’s Message:
“Final door awaits! Your challenge:
- Build the smallest possible Docker image for a Go app.
- Must be under 20MB.
Fail… and I’ll flood your CI logs forever!”
What Learners Must Do
Craft this Dockerfile:
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
FROM scratch
COPY --from=builder /app/myapp /myapp
ENTRYPOINT ["/myapp"]
✅ Build:
docker build -t escape-final .
✅ Submit image size via:
docker images escape-final
✅ Must be under 20MB → win the game
Dr. NullPointer Taunts:
- “A big-size image is a slow image.”
- “Multi-stage builds? Cute. Let’s see if you can actually do it.”
✅ Insight:
“Multi-stage builds keep images tiny by copying only what you need into a clean runtime image.”
💻 Web UI Design
Main Game Screen
-------------------------------------------
| DOCKER ESCAPE ROOM CHALLENGE |
-------------------------------------------
| Puzzle 1 Clue: |
| "Find the secret code in vault-volume." |
| |
| [ Enter Your Answer Here ] [ SUBMIT ] |
-------------------------------------------
| Progress: [####------] 2/5 |
| Score: 20 points |
| Time Left: 6m 45s |
-------------------------------------------
✅ After each puzzle:
- Confetti animation
- Funny villain insults or praises
- Progress bar fills
Game Over Screen
-------------------------------------------
| YOU ESCAPED THE DOCKER VAULT! |
| |
| Your Final Score: 47/50 |
| Time Taken: 8m 23s |
| |
| "Congratulations. You are now a true |
| Docker Grandmaster." |
| |
| [ View Leaderboard ] [ Play Again ] |
-------------------------------------------
🔥 Random Dr. NullPointer Quotes
✅ Keep things funny and unforgettable:
- “
docker run? More likedocker ruin.” - “Volumes… they’re the dark matter of containers.”
- “I hope you like inspecting things. Because you’re going to be stuck inspecting this vault forever.”
✅ Benefits for Learners
✅ Master:
- volumes
- networking
- secrets
- resource limits
- multi-stage builds
✅ Get real hands-on practice ✅ Experience Docker like a puzzle-adventure ✅ Walk away with:
“I know how to troubleshoot and solve Docker problems in real life.”
✅ Adrenaline. Laughter. Lifetime memory.
✅ Implementation Blueprint
Folder Structure
scenario_05_escape_room/
│
├── webui/
│ ├── app.py
│ ├── templates/
│ │ └── escape.html
│ └── static/
│ └── js/
│
├── puzzles/
│ ├── puzzle1_volume.sh
│ ├── puzzle2_network.sh
│ ├── puzzle3_memory.sh
│ ├── puzzle4_inspect.sh
│ └── puzzle5_multistage/
│ ├── Dockerfile
│ ├── main.go
│
└── docker-compose.yml
Puzzle Shell Scripts
Each script:
- Sets up puzzle
- Prints puzzle clue
- Prepares containers
Example puzzle1_volume.sh:
#!/bin/bash
docker volume create vault-volume
docker run --rm -v vault-volume:/mnt busybox sh -c "echo 'escape123' > /mnt/secret/code.txt"
Web UI
- Flask-based
- Renders puzzle clues
- Accepts answer submissions
-
Tracks:
-
progress
- score
- time left
- Randomly selects villain taunts
Cleanup Script
docker volume rm vault-volume
docker network rm networkA networkB
docker rm -f container123 app db
docker rmi escape-final