Alexander Ryzhov
Mar 2, 2025

Fall of Docker

I’m done with Docker.

The system introduces a redundant level of abstraction, which we already have in form of virtual machines. The more levels of abstraction you have, the more things you need to juggle simultaneously.

Can you juggle with barebones OS? Can you juggle with OS as a virtual host? Can you juggle with OS as a virtual host which runs a virtual representation in form of Docker container? Can you juggle many those containers? Can you juggle with complex orchestration of these containers?

By my experience in the server development, i can say that if something is broken, i want the simplest ways to find a problem, do it quick and without pain of remembering much features of deployment. Most of my projects ended up running as Linux Services - it’s simple and straightforward.

Docker is more convenient to setup something you don’t know about, in one command (if image’s author cared about your convenience), but if something fails, it’s incredibly troublesome to debug/fix/maintain. To maintain a docker containers you need to have knowledge about volume locations, docker network setups, docker-compose setups, etc. And, oh god, imagine if you add k8s setups or other container orchestration to this, it will be such a pain to debug this. Often it ends up to being a limited group of people (i mean 1 person who is currently on vacation) who remotely know how to work with this hell.

We created problems ourselves, and then introduced Docker to fix these problems.