World map

 

BM: Baca dalam Bahasa Melayu

World D0: Start Here

It works on my machine

You will learn: why an app that works on your laptop breaks on another, and how containers fix it.

Checked with Docker Engine 29 on 31 Oct 2026

The problem

Your shop app runs fine on your laptop. Mei runs the same code. It crashes! You say: “But it works on my machine!” Why did it break?

Pick one answer.

Watch

Every kitchen is different. One stove is gas, one is electric. One has no sambal. The same recipe tastes different. Git copies your code. What does it leave behind?

Drag a card into a box. Or tap the card, then tap the box.

      Watch

      docker run starts the shop app inside a container. The picture shows one green lunchbox, open on hatch 8080. Docker transcript: $ docker run -d --name shop -p 8080:80 nginx:1.30-alpine 0bdab3153a23c2e6d9f5f8ef0fd3dad9964f4569fc7ec7b635a948c7e07b8d96

      Your laptop~

      • No open hatches

      Lunchboxes (containers)

      • No containers yet

      Frozen packs (images)

      • alpine:3.221 layers · 12.9MB
      • nginx:1.30-alpine8 layers · 93.5MB

      0 containers (0 running), 2 images, 0 lockers.

      Pack the dish with everything it needs in a sealed lunchbox. That is a container: A sealed lunchbox that holds your app and everything it needs.. docker run opens a fresh lunchbox and starts the app inside.

      Try it

      What goes into the lunchbox? Swipe right to pack it. Swipe left to leave it out.

      Swipe right for good, left for needs work. Or use the buttons.

      1 / 5

      The app code

      The app code

      Predict

      Mei installs Docker. She runs your lunchbox on her laptop. What happens?

      Pick one answer.

      Check

      A container fixes the kitchen, not the recipe. Which problems does it fix?

      Drag a card into a box. Or tap the card, then tap the box.

          You did it!

          You can now explain why containers exist.

          Go deeper (optional)

          Containers help whole teams. A new teammate gets the app running in minutes. The server runs the same box you tested.

          Real rep (optional): ask a friend to type node --version. Compare it with yours. Different? Now you know why containers exist.