Live · hands-on · 20 hours

Containers & Kubernetes Fundamentals

A project-based course that takes you from your very first docker run to a production-shaped deployment on Kubernetes — building one real application, Pinboard, across all ten sessions. No prior Docker or Kubernetes experience needed.

10 sessions × 2h · Docker Engine + kind on your own Linux machine · for engineers with zero container experience

20h
of live training
10
hands-on sessions
1
real app, start to finish
0
container experience required
Who it's for

Built for engineers who ship

If you're comfortable in a terminal and tired of "it works on my machine", this is your on-ramp to containers and Kubernetes — starting from nothing.

Software engineers

Package your app in an image once and run it identically on your laptop, in CI and in a cluster.

Infra & SysAdmins

Learn what a container really is — namespaces, cgroups, overlay filesystems — before you operate a cluster full of them.

DevOps & platform

Get the vocabulary and the habits — probes, resources, rollouts, secrets — that make Kubernetes deployments boring in the good way.

What you'll build

One application, carried across all ten labs

Meet Pinboard — a small three-tier app: a Go API, a static nginx front-end and a PostgreSQL database. You never write application code. Instead you run it, containerize it, compose it, then move it onto Kubernetes and grow it into something production-shaped. Every lab starts where the last one ended; nothing is throwaway.

01–03

Docker by hand

Run the database, build the images, then wire the tiers together with networks and volumes.

04

One file: Compose

The whole stack in a single compose.yaml — healthchecks, dependencies, live reload, scaling.

05–07

Onto Kubernetes

A kind cluster on your own machine: Pods, Deployments with probes, Services, DNS and Ingress.

08–10

Real state & ship it

ConfigMaps, Secrets, a StatefulSet database, troubleshooting and autoscaling — then the capstone.

Outcomes

What you'll be able to do

You leave with the skills — and a complete, production-shaped Kubernetes deployment you built yourself, manifest by manifest.

Explain what a container actually is — namespaces, cgroups, overlay filesystems, OCI — and run one with confidence.
Write multi-stage Dockerfiles that build fast, stay small and don't run as root.
Handle configuration, persistent data, networking and resource limits for real workloads.
Describe a whole stack in Compose — and say precisely where Compose stops and Kubernetes starts.
Read the Kubernetes object model and drive a cluster with kubectl instead of guessing.
Ship a zero-downtime rolling update — and roll it back when the new image is broken.
Expose apps with Services and Ingress, and store state with PVCs and StatefulSets.
Debug a broken Pod with a repeatable method, autoscale it, and lock it down with a securityContext.
Curriculum

Ten sessions, one continuous build

Each 2-hour session pairs focused theory and live demos with a hands-on lab that moves the Pinboard project one step forward.

01

Containers & Docker: the mental model

Why containers; namespaces, cgroups and overlay filesystems; the OCI specs; CLI → dockerd → containerd → runc; image naming, digests and the container lifecycle.

Lab 01 · Run the Pinboard database tier: Postgres in a container, psql, inspect, restart, remove.
02

Building images

Dockerfile anatomy, how BuildKit caches, instruction ordering, .dockerignore, multi-stage builds, base image choice, non-root, publishing, multi-platform and SBOMs.

Lab 02 · Build the Pinboard images: a multi-stage API image (400 MB → ~10 MB), versions 1.0 and 1.1, plus the web image.
03

Running containers well

Config via environment, ARG vs ENV, ENTRYPOINT vs CMD, PID 1 and signals; volumes, bind mounts and tmpfs; user-defined networks and DNS; memory/CPU limits, restart policies, healthchecks.

Lab 03 · Wire Pinboard together by hand: a network, a volume, three containers talking by name — notes survive a database restart.
04

Docker Compose

The Compose Specification (no version: key), services, healthchecks and depends_on conditions, profiles, overrides, compose watch — and what Compose can't do.

Lab 04 · Pinboard in one file: write compose.yaml, up --wait, edit the web page live, scale the API to three.
05

Kubernetes: architecture, kubectl, Pods

Why orchestration; control plane and node components; the API object model and reconciliation; kubeconfig, contexts, namespaces, kubectl grammar; Pods, init and sidecar containers, requests and limits.

Lab 05 · Pinboard meets Kubernetes: create the kind cluster, load the image, run the API imperatively and from a manifest, then read the events of a failing Pod.
06

Workloads: Deployments, rollouts and probes

Labels and selectors, ReplicaSets, Deployments, rolling-update mechanics, rollout history and undo; liveness, readiness and startup probes; DaemonSets, Jobs and CronJobs at a glance.

Lab 06 · Make the API resilient: three replicas with probes, a zero-error rolling update 1.0 → 1.1, a CrashLoopBackOff and a rollback.
07

Networking: Services, DNS, Ingress

The Pod network model and CNI; ClusterIP, NodePort, LoadBalancer, headless; EndpointSlices and kube-proxy; cluster DNS; Ingress controllers, path and host routing, Gateway API, NetworkPolicy.

Lab 07 · Expose Pinboard: Services for api and web, a DNS test from a debug Pod, ingress-nginx on kind, and the app open in your browser.
08

Configuration & storage

ConfigMaps and how updates propagate; Secrets, why base64 is not encryption, encryption at rest and external stores; volume types; PV, PVC, StorageClass and dynamic provisioning; StatefulSets.

Lab 08 · Give Pinboard a real database: a Secret, a ConfigMap, a StatefulSet with a 1 Gi PVC — delete the Pod and the notes are still there.
09

Operating Kubernetes

A troubleshooting method and the status zoo; kubectl debug and ephemeral containers; metrics-server, k9s and Headlamp; HPA v2, PDBs, quotas and LimitRanges; RBAC and securityContext / Pod Security Admission.

Lab 09 · Operate Pinboard: autoscale the API under load, break it two ways and debug it with the method, then add a PDB and a securityContext.
10

Capstone: ship Pinboard like production

What "production-ready" means as a checklist; packaging with Helm and Kustomize; GitOps in one slide; what changes on managed Kubernetes; where to go next.

Capstone (80′) · Deploy the whole stack from a blank folder into pinboard-prod — and score yourself with the verification script.
How each session runs

A rhythm that keeps you building

No four-hour lectures. Every session is short bursts of theory, live demos, then you at the keyboard.

50 min

Theory + live demos

The concepts, shown in real commands you can follow along with.

10 min

Break

Reset, then back to it.

20–30 min

More theory + demos

The second concept block, building on the first.

30–40 min

Hands-on lab

You move Pinboard forward — the through-line of the whole course.

Session 10 breaks the pattern: 30 minutes of theory and demos, then an 80-minute capstone lab.

Lab environment

Everything runs on your own machine

No cloud account, no credit card, no shared cluster to fight over. A Linux machine with Docker Engine and a kind cluster gives you a real multi-node Kubernetes to break and rebuild as often as you like. Images are built locally and loaded straight into the cluster, so the labs work even on a closed network.

MACHINE

Linux, 4 CPU / 8 GB

Ubuntu 22.04 or 24.04 (or a close derivative), amd64 or arm64, 20 GB free disk. A VM is fine.

CONTAINERS

Docker Engine 28+

With Compose v2 and Buildx/BuildKit, running as your normal user — no sudo.

KUBERNETES

kind + kubectl

A disposable Kubernetes 1.33 cluster in Docker, with port mappings for Ingress on localhost.

EXTRAS

helm, k9s, an editor

Used in the later sessions and the capstone. A one-command setup script installs the lot.

Prerequisites

What you need before session one

Short version: a terminal you're comfortable in, and a machine that can run Docker. Lab 00 walks you through the rest in about 20 minutes.

Comfort with a Linux shell — navigating, editing files, reading logs. Every command in the course is Linux/bash.
A Linux machine you have sudo on, with 8 GB RAM and 20 GB of free disk.
Outbound HTTPS for pulling images and tools — or ask us for the offline image bundle in advance.
Lab 00 completed: Docker Engine, kubectl, kind and helm installed and verified. No Docker or Kubernetes knowledge assumed.
Why this course

Different from the usual tutorial

One real application

Not ten disconnected sample images — a single three-tier app you containerize, compose, deploy and operate end to end.

Current tooling, no folklore

Compose v2 and BuildKit, containerd and the CRI, Kubernetes 1.33 on kind, StatefulSets and HPA v2 — not 2021 habits.

Production habits from day one

Non-root images, probes before rollouts, resource limits, secrets kept out of git, a debugging method you can reuse on Monday.

Enrollment

Join the next cohort

Live cohort
20 hours · 10 × 2h
  • 20 hours of live, hands-on training (10 × 2h)
  • All slide decks, step-by-step labs, solutions and demo code to keep
  • The complete Pinboard project, running on your own machine
  • Q&A in every session
Get in touch →

Ask about dates, seats and private cohorts — hello@zonoth.tech

FAQ

Questions, answered

Do I need prior Docker or Kubernetes experience?

No. Session 01 starts at "what is a container, really" and builds from there. You should be comfortable using a Linux terminal and have a basic grasp of how a web application and a database fit together.

Do I need a cloud account or a real cluster?

No. Everything runs locally: Docker Engine for the container sessions and a kind cluster — Kubernetes running inside Docker — for the Kubernetes ones. Session 10 covers what changes on managed Kubernetes such as AKS, EKS or GKE.

What do I need installed?

Docker Engine 28+, kubectl, kind and helm on a Linux machine. Lab 00 is a step-by-step setup guide with a one-command install script — about 20 minutes before session one.

Do I have to write code?

No. The sample application, Pinboard, is provided: a Go API, an nginx front-end and PostgreSQL. You write Dockerfiles, Compose files and Kubernetes manifests — not application code.

Will I get the materials?

Yes — all decks, labs, solutions and demo files are yours to keep, and you finish with the whole Pinboard stack deployed on your own machine.

Can you run this for my team privately?

Absolutely. Private and team cohorts can be scheduled and tailored — including an offline image bundle for closed networks. Get in touch.

Ready to build?

Stop guessing at YAML. Start shipping containers.

Join the next cohort of Containers & Kubernetes Fundamentals and walk away with real, production-shaped skills — and the running project to prove it.

Get in touch →