DEV Community

Cover image for You asked, and I shipped it: pipes, real error messages and streak freezes in DockerLinux
Doode
Doode

Posted on

You asked, and I shipped it: pipes, real error messages and streak freezes in DockerLinux

Earlier this month I posted DockerLinux here: a free game that teaches Linux and Docker in a simulated terminal in your browser. At the end I asked one question: where does the simulation behave differently from the real thing?

You answered, and some requests stood out in the comments, so I built both. Here's what changed and a few extras that came along for the ride.

1. Pipes

In the first article I wrote: "Pipes aren't supported yet. They're on the list!" It didn't stay on the list for long.

Pipes

There's now a whole new Level 3, "Pipes: connecting commands", so the course is 10 levels:

ls | wc -l                 # how many files?
history | grep docker      # "what was that command again?"
docker ps | grep web       # find one container in a busy list
Enter fullscreen mode Exit fullscreen mode

It covers grep, head, tail, sort and wc, and your first pipe unlocks the Plumber achievement.

2. Error messages, word for word

The other request: make the errors identical to the real ones. That matters more than it sounds, because a beginner learns to read errors as much as to type commands, and a "close enough" message teaches the wrong thing.

A real Docker error

Errors now match real bash and Docker word for word, e.g. Unable to find image 'x:latest' locally. When you meet it on a real machine, you've already seen it.

3. Your progress, on any device

Playing still needs no account. But if you want one, it's just your email and a 6-digit code, no password. XP, levels, quiz answers, your streak and even the files you created in the simulated machine sync to any computer or phone. You can log out everywhere or delete the account from the menu.

4. Streaks that forgive a bad day

The streak card

One command a day keeps your 🔥 streak alive. What I didn't want was one missed day wiping out two weeks of practice, so you now earn streak freezes by finishing levels (you can hold up to 2). Miss a day and a freeze is used for you: ❄️ Streak saved!

5. 35 achievements (7 of them secret)

Achievements page

There's a proper achievements page now: badges for getting started, levels, Docker, streaks and inviting friends, progress bars on the locked ones ("43/50"), a "Next up" card and a grid of your practice days over the last 6 months.

Seven are secret. I'm not saying which. 👀

6. And two things just for fun

  • Byte, a pixel penguin who lives at the bottom of the terminal. He hatches on your first command, grows up as you practise, covers his eyes when you get an error and dances when you level up. Try pet dance or pet style arctic.
  • movie: a ~50-second ASCII film, "OUT OF MEMORY". A container leaks memory, the OOM Killer chases it, and docker update --memory 1g saves the day. The credits end with the actual lesson: set memory limits (docker run -m 512m).

What's next

The same question as last time, because it worked: what should I build next? On my list are permissions, processes, environment variables and multi-stage builds. Tell me which one you'd want first, or what else confused you.

And if you know Docker well: where does the simulation still differ from the real thing in a way that would mislead a beginner? Every answer to that has made the game better.

👉 dockerlinux.com: still free, still nothing to install.

Top comments (0)