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
- Download Docker Desktop (free)
- Open a terminal and run:
docker run hello-world - Docker downloads the hello-world image and runs it — you'll see a success message
- Try:
docker run -p 8080:80 nginx— this runs an Nginx web server and maps it to port 8080. Visitlocalhost:8080in 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 →