Docker & Kubernetes
The standard toolchain for packaging applications into portable containers and orchestrating them at scale across any infrastructure.
What it is
About Docker & Kubernetes
Docker is the industry-standard tool for building and running containers — self-contained units that package an application with all its dependencies so it runs identically regardless of where it is deployed. A Dockerfile describes how to build the image; `docker build` produces it; `docker run` executes it. Docker Compose orchestrates multi-container local development environments, letting a developer spin up an application with its database and cache in a single command. Docker Hub and Amazon ECR are the standard registries for storing and distributing container images. Kubernetes (K8s) is the container orchestration platform that takes Docker's portable images and runs them reliably at scale. It manages deploying containers across a cluster of nodes, scaling replica counts up and down based on load, restarting containers that crash, rolling out new versions without downtime, and routing traffic between services. Managed Kubernetes services — AWS EKS, Google GKE, Azure AKS — abstract the cluster control plane, so most engineering teams interact with Kubernetes through `kubectl` commands and YAML manifests that describe the desired state of their deployments, services, and ingress rules.
What you can do with it
Capabilities
Write a Dockerfile for a Node.js application, build the image, run it locally with environment variables injected, and verify the application behaves identically to the non-containerised version
Create a Docker Compose file that starts the application, a PostgreSQL database, and a Redis cache together — with named volumes so database data persists between container restarts
Write a Kubernetes Deployment manifest with three replicas, configure a liveness probe that restarts unresponsive containers, and apply it to a staging cluster with `kubectl apply`
Set up a Kubernetes Horizontal Pod Autoscaler with a CPU threshold of 70%, run a load test, and watch the replica count scale from 3 to 12 as traffic increases
Roll back a broken Kubernetes deployment to the previous version using `kubectl rollout undo`, confirm the previous image is running across all pods, and write a post-incident summary explaining what went wrong
How to learn it
Learning Resources
Docker's official Getting Started tutorial at docs.docker.com — install Docker Desktop and complete the tutorial in an afternoon; building and running your first container is the only way to make the concepts concrete
Kubernetes.io interactive tutorials at kubernetes.io/docs/tutorials — Minikube lets you run a local Kubernetes cluster without any cloud account
"Kubernetes Up & Running" by Burns, Beda & Hightower (O'Reilly) — the definitive book, available via O'Reilly subscription or free PDF previews
KodeKloud (kodekloud.com) — paid but highly rated; the Docker and Certified Kubernetes Administrator (CKA) courses combine video and in-browser labs that mirror the real exam environment
Pro Tip
Keep your Docker images as small as possible. Start from a slim or alpine base image, use multi-stage builds to exclude build tools from the final image, and run `docker image ls` regularly to monitor image sizes. A 2GB image takes minutes to pull in CI/CD pipelines; a 100MB image takes seconds — and the cumulative CI cost difference on a busy team is significant.
Skills that use this tool
Roles that use this tool
Alternatives