jvinhit//lab

Search posts

Type to search across journal entries.

navigate open esc close

Series · 10 parts

Docker, Compose & Kubernetes

Containers from fundamentals to Compose and Kubernetes, ending with debugging real-world issues.

  1. Start Docker from zero: what a container really is (vs a VM), how images and layers work, the core docker run workflow, and your first hands-on container — with exercises to drill the commands.

  2. Stop using other people's images and build your own: Dockerfile instructions, how layers and the build cache work, multi-stage builds for tiny images, .dockerignore, and tagging.

  3. Containers are ephemeral — so where does data live? Named volumes vs bind mounts vs tmpfs, persisting a database, mounting source code for live dev, and managing env vars and secrets safely.

  4. How containers talk: the default bridge vs user-defined networks, automatic DNS by container name, publishing vs exposing ports, and wiring an app container to a database container.

  5. Run multi-container apps with one file and one command. The compose.yaml model: services, build vs image, ports, volumes, networks, depends_on, and the everyday compose workflow.

  6. Level up Compose: env files and variable interpolation, healthchecks with depends_on condition, profiles for optional services, multiple compose files / overrides, and scaling services.

  7. Make images small, fast, and safe: slim and distroless bases, layer-cache discipline, multi-stage recap, running as a non-root user, handling secrets properly, .dockerignore, and image scanning.

  8. The debugging playbook: read logs, exec in, inspect, events and stats — then a field guide to the errors you will actually hit (port in use, exit codes, OOMKilled, ImagePullBackOff, cache, networking) and how to resolve each.

  9. From a single host to a cluster: why Kubernetes exists, its architecture, and the core objects — Pods, Deployments, and Services. Spin up a local cluster with kind and deploy your first app from Compose.

  10. Make a k8s app production-shaped and learn to debug it: ConfigMaps & Secrets, liveness/readiness probes, resource limits, rolling updates and scaling, then a kubectl debugging playbook for CrashLoopBackOff, ImagePullBackOff and more.