Kubernetes Pod vs Deployment: What's the Difference

Run kubectl run nginx --image=nginx:1.27 and Kubernetes creates exactly one Pod named nginx. Delete it with kubectl delete pod nginx and it is gone for good — nothing notices, nothing replaces it. A Pod is the smallest deployable unit in Kubernetes: one or more containers that share a network namespace and a set of volumes, scheduled together onto a single node. That single Pod is a dead end in production. If the container inside it crashes, the kubelet restarts the container in place. If the node reboots, or someone deletes the Pod, nothing recreates it. A bare Pod has no memory of the fact that it is supposed to exist. ...

September 10, 2026 · 5 min · 991 words · SpaghettiCoder

How to Reduce Docker Image Size

Why a Docker image ends up ten times bigger than the app A Node service with a few hundred kilobytes of source code ships as an image over 1 GB. That is the normal outcome of a working build, not a mistake anyone made on a particular line. The weight comes from a base image carrying a full OS, a build toolchain the running app never calls, and a package manager cache nobody told the build to delete. ...

September 8, 2026 · 6 min · 1215 words · SpaghettiCoder

Dockerfile Best Practices: Smaller, Faster Builds

What a bad Dockerfile costs you 1 2 3 4 5 6 FROM node:latest COPY . . RUN npm install CMD ["node", "server.js"] Four lines, and every one of them costs you something. docker build re-runs npm install on every code change, because COPY . . breaks the layer cache before the install step ever gets a chance to be reused. The final image carries the full Debian base, the entire node_modules tree including dev dependencies, and whatever build tools npm install pulled in to compile native modules. Nothing is discarded. The container runs as root, because nothing tells it not to, and node:latest means the base image can change under you between one build and the next, with no record of what you actually shipped. ...

September 7, 2026 · 9 min · 1860 words · SpaghettiCoder

What Is Docker Compose and How to Use It

The problem Compose solves A real application is rarely one container. A web API needs a database, the database needs a volume so its data survives a restart, and then you add a Redis cache and a background worker. That is four docker run commands, each with its own flags for ports, volumes, environment variables and a shared network. In the right order. Every time you sit down to work. ...

September 6, 2026 · 8 min · 1541 words · SpaghettiCoder

Docker vs Podman: Differences and Which to Choose

Docker and Podman run the same images with the same commands. What separates them is architecture: Podman has no background daemon and runs rootless by default, while Docker brings the mature tooling, Docker Desktop, and first-class Compose. Below, the differences that actually affect your work — daemon, root, Compose, and pods. What is Podman? Podman (Pod Manager) is a tool for managing containers and pods, developed by Red Hat as an open source alternative to Docker. Its main feature? It doesn’t need a daemon running. ...

January 31, 2026 · 6 min · 1105 words · SpaghettiCoder

What Is Kubernetes and What Is It Used For

What Kubernetes does One Docker container on one machine is easy to run by hand. Fifty containers across ten machines — restarting them when they crash, moving them when a machine dies, splitting traffic between them, updating them without downtime — is not. Kubernetes (shortened to K8s) is the system that does that managing for you. What Is Kubernetes? Kubernetes is an open-source platform for container orchestration. Google created it in 2014 based on 15 years of running containers at scale, and the Cloud Native Computing Foundation (CNCF) maintains it now. ...

January 31, 2026 · 8 min · 1533 words · SpaghettiCoder