docker is hot these days and it is everywhere. But someone who likes to tinker with servers using scripting like bash etc, I don't get docker. Ok I get that it allows you to "containerize" things so you can re-use wherever using same set of stuff. But what are some of the disadvantages of "containerization" specifically using docker ?
Just trying to convince myself to start using it but so far, my run_install.sh script beats everything. Why the hassle of containerization ? What overheads does it add which may not be worth it in some cases ?
Build. Docker layering do not fit the model of building software and dependency, which makes its caching really brittle. At that point i discourage having layers.
Networking: this is a mess, even k8s do not solve it completely. There is a huge market of 3rd party provider of solutions for that.
Stability: Docker is based on lot of still unstable API and tools. I have a kernel crash per month in prod from Docker and strange stuff happens. Additionaly, docker breaks their own API regularly without respecting semver.
Disk/FS speed. This is a pain.
GC. Docker fill your disk faster than a java logger. And that is something. A friend filled 100GB just trying k8s for a day...
UX. The docker cli got better but still far from there.
Debuggability. Crash without saving core dump, pain in the ass to load debugging tools, etc.
All in all, we are getting rid of it at work. Spent the past 3 months deleting it from all projects in active development.