DEV Community

Discussion on: Who Ate Docker's Lunch?

Collapse
 
downey profile image
Tim Downey • Edited

This is all based on my first hand experiences and things I've pieced together over the years so take it was a grain of salt. But anyway, here's my thoughts on why.

Part of the problem is that Linux containers have become commoditized. Linux containers rely on a set of primitives provided by the Linux kernel that anyone can make use of. Things like namespaces, cgroups, seccomp, etc. Projects like LXC for manipulating these constructs existed before Docker and it's only gotten easier to work with since.

As this post mentions, Docker's primary contribution was its excellent UX that brought Linux containers to the masses. The Dockerfile was an incredible abstraction when it was first introduced and the Docker container "image" format was very convenient.

However, other OSS projects and container standards emerged over time. Other containerization projects like rkt were developed, and this put pressure on Docker. They eventually worked to ensure that the Docker image format became a standard and the Open Container Initiative was formed. You can read more about that history here.

This ensured the continued relevance of Docker and was great for the developer community at large. For example, Cloud Foundry, a project that I've been a part of, had independently developed its own containerization engine back in 2011 -- prior to the rise of Docker. Once the dust had settled on OCI, we soon migrated to this standard, and so did many others.

At this point folks had an easy way of packaging up software. However the actual deployment and orchestration of these containers was a problem that remained unsolved. Docker tried to pivot toward solving this with Docker Swarm and intended on making money off of their enterprise offering.

Unfortunately, Kubernetes showed up. Kubernetes was free, open source, and worked great with Docker (OCI) images out of the box. Since OCI is a standard, if Docker did anything to make itself work less seamlessly Kubernetes, it could be swapped out with another compatible container runtime. I think they just had a hard time competing with that. 😔

Collapse
 
mohanarpit profile image
Arpit Mohan

This is an amazing comment. Thanks!

I agree that in the end, monetizing an open source product and an open standard is really hard. While it helps build an entire industry and many other businesses rely on them, just surviving is a struggle. Unfortunately, Docker (like Netscape) will go down into the annals of history of giving us great tech but not thriving as a great company.