Every job posting for a developer role in Canada mentions Docker. Most beginners have no idea what it actually does. This article explains it in plain English — no jargon.

The problem Docker solves

You've probably heard this: "It works on my machine." A developer writes code that runs perfectly on their laptop but crashes on the server. Or a new team member spends a day just trying to get the project to run on their computer.

This happens because software depends on the exact right versions of dozens of other pieces of software — the OS, the runtime, the libraries. Different machines have different versions. Things break.

Docker's answer: Package your app AND everything it needs into a single portable unit called a container. That container runs identically everywhere — your laptop, a coworker's Mac, AWS, anywhere.

Containers vs virtual machines

You might have heard of virtual machines (VMs). Containers are similar but much lighter. A VM includes an entire operating system (gigabytes). A container shares the host OS and only includes your app and its dependencies (megabytes). Containers start in milliseconds. VMs take minutes.

Key Docker concepts

Image

A read-only template for creating containers. Think of it like a recipe. You can share images on Docker Hub (like GitHub but for images).

Container

A running instance of an image. You can run many containers from the same image simultaneously.

Dockerfile

A text file with instructions for building an image. Example:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

This builds an image that runs a Python app. Every line is an instruction Docker executes.

Run your first container in 2 minutes

  1. Download Docker Desktop (free)
  2. Open a terminal and run: docker run hello-world
  3. Docker downloads the hello-world image and runs it — you'll see a success message
  4. Try: docker run -p 8080:80 nginx — this runs an Nginx web server and maps it to port 8080. Visit localhost:8080 in your browser.

Why it matters for your career

Docker is listed in over 60% of developer job postings in Canada. Once you understand containers, you'll understand Kubernetes (container orchestration), CI/CD pipelines, and modern cloud infrastructure. It's a gateway concept that unlocks a huge part of DevOps and backend development.

Ready to go deeper? Check out the Cloud Computing learning path →

← Back to blog Try AI Explainer →