Blog
Practical guides on Docker, Kubernetes, networking and CI/CD — each one paired with a free tool.
Docker
Multi-Stage Docker Builds: Smaller, Safer Images
Build in one stage, ship from another: multi-stage Dockerfiles for Node.js and Go, BuildKit cache mounts, test stages in CI and the pitfalls.
· 4 min read
Docker
Dockerfile Mistakes That Leak Secrets and Bloat Images
Six Dockerfile mistakes you can prove with docker history, inspect and top: leaked tokens, layers that never shrink, stale apt caches and slow stops.
· 4 min read
Kubernetes
From Dockerfile to Kubernetes in Four Steps
Take a Node.js API from a first Dockerfile to validated Kubernetes manifests with four free OpsAtlas tools: lint, Compose, generate, validate.
· 4 min read
Kubernetes
Your First Kubernetes Deployment and Service
Run a container on a local Kubernetes cluster: generate a Deployment and Service, check them, apply them and watch Kubernetes keep the app running.
· 4 min read
Docker
A Local Dev Stack with Docker Compose
Run an API and Postgres together with one command: convert docker run to Compose, then add builds, health checks, startup order and a .env file.
· 3 min read
Docker
Pin Docker Base Images by Digest and Keep Them Updated
Why node:22 can change under you, how to pin FROM lines to an immutable digest, and how Renovate or Dependabot keep pinned images patched.
· 3 min read
Docker
Write Your First Dockerfile
Build a container image for a small Node.js API line by line, run it, then lint it and fix it to a perfect score. No Docker experience needed.
· 4 min read
Security
Debugging 401 Unauthorized With JWTs: 7 Causes
A valid-looking token, a 401 response. Seven common causes, from expiry and clock skew to the wrong audience and rotated keys, and how to check each.
· 3 min read
Kubernetes
Debugging a Kubernetes 503: From Ingress to Pod
Trace a 503 or 502 from a Kubernetes Ingress through the Service and its endpoints to the pod, with the kubectl command to check each hop.
· 3 min read
CI/CD
GitHub Actions Matrix Jobs and Required Status Checks
Why a GitHub Actions matrix leaves pull requests stuck on "Expected — Waiting", how to make matrix jobs safe to require, and how to keep PR matrices small.
· 2 min read
Kubernetes
Kubernetes CronJobs: Time Zones, Missed Runs, Overlaps
Why a Kubernetes CronJob runs at the wrong hour, runs twice, or stops running, and the CronJob settings that make scheduled jobs predictable.
· 3 min read
Kubernetes
Kubernetes Probes Without the Outages
How readiness, liveness and startup probes differ, the probe mistakes that turn a slow database into a full outage, and safe settings to start from.
· 3 min read
Kubernetes
Planning Kubernetes Node, Pod and Service CIDRs
How to size the three IP ranges every Kubernetes cluster needs, why pod CIDRs run out first, and how to avoid overlaps with VPCs, VPNs and Docker.
· 3 min read
Cloud cost
How Many Instances to Reserve: The Break-Even Method
Use hourly usage and one break-even number to decide how many instances to reserve, with a worked example of where the last commitment stops paying.
· 3 min read
Kubernetes
Why Kubernetes Rejects value: yes (YAML 1.1 vs 1.2)
The same YAML file can mean different things to different parsers. How the 1.1 vs 1.2 split breaks Kubernetes, Compose and CI files, and how to spot it.
· 3 min read
Docker
Migrating from docker run to Docker Compose
A practical, step-by-step guide to turning a pile of docker run commands into one compose.yaml, and the five mistakes to fix along the way.
· 3 min read
No articles match your search.
Try a different word or pick “All”.