← All posts

Docker in Plain English — Why Containers, Not Just 'It Works on My Machine'

Everyone tells you to "just Dockerize it" without explaining what that even means. Here is the 6-minute version.

🚀 The Simple Version

Docker packs your app AND everything it needs to run (the right Node version, libraries, settings) into one sealed box called a container. That box runs exactly the same on your laptop, your friend's laptop, and a server on the other side of the world.

The Problem It Solves

You've heard "it works on my machine" — someone's code fails for everyone else because their machine secretly has a different version of something installed. Docker kills that excuse: if it runs in the container, it runs everywhere the container runs.

Image vs Container — the Confusing Part

An image is the recipe (a snapshot: "install Node 20, copy my code, run this command"). A container is the actual dish made from that recipe — a running instance of the image. You can spin up ten containers from one image.

A Minimal Dockerfile

FROM node:20
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]

Read it top to bottom like instructions: start from a Node 20 base, go into /app, copy my files in, install dependencies, then run the app. That's genuinely most of what Docker is for a student project.

Do You Actually Need It?

For a solo class project, probably not. For anything you deploy, work on with teammates, or want on your resume as a real DevOps skill — yes. It's one of those things where 20% effort now saves you from 3 AM "why won't this deploy" panic later.