Welcome aboard
Welcome to a hands-on, text-based course on Docker and Kubernetes. By the time you finish, you will be able to package an application into a container, run a small fleet of services together, and deploy that system onto a Kubernetes cluster the way modern engineering teams do every day. This is not a course you only read — it is a course you do. Every concept is paired with commands you type into a real terminal and output you verify with your own eyes.
Containers and Kubernetes have become the default way to ship software. Whether you are a backend developer, a frontend engineer curious about deployment, a data professional, or someone moving into platform and DevOps work, these skills are now part of the baseline. The goal here is to take you from "I have heard of Docker" to "I can design, build, and operate a containerized system" — without hand-waving.
What you will build
The course is anchored by a single growing project. You start by containerizing one small web service, then gradually add the pieces of a realistic microservices system:
- A stateless API service, containerized with a clean, multi-stage
Dockerfile. - A second service that talks to the first over the network.
- A database running as a container with persistent storage.
- Local orchestration with
docker composeusing acompose.yamlfile. - A full Kubernetes deployment: Pods, Deployments, Services, ConfigMaps, Secrets, and Ingress.
- An automated delivery pipeline that builds images and rolls them out safely.
Each part builds on the last, so by the Capstone you are not assembling toy fragments — you are operating a coherent system you understand top to bottom.
Who this course is for
This course is written for beginners to containers who are nonetheless comfortable with a few basics. You do not need any prior Docker or Kubernetes experience. You do need:
- Basic comfort with a command line — running commands, moving between folders, editing a file.
- A rough understanding of how a web application works (a client makes a request, a server responds).
- Willingness to read carefully and type the commands yourself rather than skim.
If you can clone a Git repository and run a program from a terminal, you are ready. Where deeper knowledge helps, the text fills in the gaps as you go.
How the course is structured
The material is organized into five parts that map directly to the roadmap above:
- Foundations — the mental models: why containers exist, how deployment evolved, and how to use this course.
- Docker — images, containers, the
Dockerfile, volumes, networking, anddocker compose. - Kubernetes — the cluster, Pods, Deployments, Services, configuration, and scaling.
- Delivery & Production — registries, automated builds, rollouts, observability, and security basics.
- Capstone — you assemble and deploy the complete system yourself.
Throughout, you will use current tooling: Docker Engine with BuildKit enabled by default, the v2 docker compose command (not the old docker-compose binary), and Kubernetes v1.29+. The commands and file formats you learn here reflect how teams work today.
The tools you will install
You do not need everything on day one — each part tells you exactly what to set up. The full toolkit is:
- Docker Desktop (Windows/macOS) or Docker Engine (Linux) — to build and run containers.
- kubectl — the command-line client for talking to a Kubernetes cluster.
- Minikube or Kind — to run a real Kubernetes cluster on your own machine.
- Helm — a package manager for Kubernetes applications.
- Git — for the course project and version control.
- VS Code (or your editor of choice) — with the Docker and Kubernetes extensions.
You can confirm the two you need first like this:
docker --version
docker compose versionIf both print a version, your Docker setup is ready for Part 2. We will install kubectl and a local cluster when we reach Kubernetes.
How labs and knowledge checks work
Two recurring features keep the learning active. Labs (marked with a 🧪) give you numbered steps to run, plus the expected output so you can confirm you got it right. Knowledge checks appear between sections to help the ideas stick. The next lesson explains why containers exist by tracing how application deployment evolved — and the lesson after that walks you through exactly how to use this text course effectively.
- This is a do-it-yourself course: you build a real microservices system across five connected parts.
- No Docker or Kubernetes experience is required — just basic command-line comfort.
- You will use current tooling: Docker Engine with BuildKit,
docker composev2, and Kubernetes v1.29+. - Labs come with expected output so you always know whether a step worked.