Docker vs Kubernetes: Orchestrating the Modern Cloud
Apr 12, 2026
I spent an entire month wrestling with Kubernetes back in 2019. Seriously, just endless documentation, broken tutorials, and a whole lot of head-scratching. At the time, I was working at a mid-sized fintech company over in Amsterdam, and we desperately needed to scale our microservices way past what Docker Compose could comfortably handle.
By then, Docker was basically old hat for me. I’d been containerizing applications since 2016, constantly having to explain to my bosses that containers weren’t just “lightweight VMs”—a presentation I gave way too often. Kubernetes, though? It hit my brain like a completely foreign dialect.
When Docker Isn’t Enough Anymore
Our actual tipping point hit during a major product launch last year. We were running fifteen microservices across three RHEL 8.4 servers using Docker Compose. Things actually ran okay at first. But then traffic exploded, one critical service crashed, and suddenly we were frantically SSHing into servers just to restart containers by hand. It was hardly the slick, automated cloud setup we had pitched to our clients. My manager immediately pushed for a move to Kubernetes.
Truth be told, I really wondered if we needed it. Docker had easily handled everything we’d thrown at it up to that point, and Kubernetes struck me as hyped-up buzz meant only for massive, Google-level operations. But looking back at it now—and this is probably painfully obvious to everyone else—the signs were absolutely everywhere that we had totally outgrown our old setup.
The Learning Curve Reality
The thing about Kubernetes is that the concepts click one by one, but assembling them feels like trying to put together a puzzle that has duplicate pieces. Pods, Services, Deployments, ConfigMaps—I understood what each one did, yet figuring out their interplay ate up weeks of my life. I’m not entirely sure, but I strongly suspect I spent more time debugging YAML indentation errors than writing actual application logic during those first few weeks.
I remember three full days vanishing just trying to expose a basic nginx deployment to the outside of the cluster. With plain Docker, a quick docker run -p 80:80 nginx would’ve done the job in five minutes. K8s demanded that I grasp ingress controllers, service types, and complex networking policies. The whole networking stack was honestly pretty intimidating at first.
Things finally clicked when I stood up our new staging environment on EKS. The auto-scaling kicked in without a single hitch, and suddenly I felt like I was actually getting somewhere. Actually, that reminds me—I should probably mention that watching those pods spin up automatically during a traffic spike for the first time was genuinely exciting. A bit nerdy, I know, but there it was.
What I Wish I’d Known Earlier
If I could go back, I’d tell myself that Docker still handles the grunt work; Kubernetes just directs the show. I wasted so much time pitting them against each other in my head, completely missing the fact that K8s relies entirely on Docker (or containerd these days) running underneath.
Coming from a heavy security background—I’m RHCE certified and used to mandatory SELinux setups—I totally overdid the configuration at first. As it turns out, standard pod security policies perfectly covered our high-security client needs without having to wrestle with SELinux at the node level.
My advice now? Forget the whole “Docker versus Kubernetes” debate. Ask yourself if you even need orchestration period. If you just have a handful of services running on a couple of Ubuntu 22.04 servers, Docker Compose still works great.
But if you hit those scaling limits, crave true zero-downtime deployments, or need actual system resilience? That’s when you cross into Kubernetes territory. I’m still picking up new K8s tricks on a weekly basis—which is frustrating, sure, but undeniably thrilling too. Does the ecosystem shift this incredibly fast for everyone else, or is it just me?
🚀 Want the full picture?
I put together RHCSA Bootcamp (RHEL 10) - Arabic for people who want the whole journey, not scattered tutorials. Step-by-step lessons, real labs, and the details I wish someone had taught me early on.