I don't like so much the idea pushed by the article author that it is partly the fault of the software to be open source!
At least, the founders of Docker are honest and clear in my opinion:
<< Hykes disagrees with this assessment. “I think that is wrong and generally speaking the core open source product created massive growth which created the opportunity to monetize in the first place,” he said. “Lots of companies monetize Docker successfully, just not Docker. There was plenty to monetize, just Docker failed to execute on monetizing it.>>
There is still a thing that is missing there: the article let think that docker was an innovation out of nowhere and they had an unique idea that was kind of spoiled.
But, one has to remember the context of the period when Docker was created:
It was a time were cgroups and "namespaces" of network, process, ... were the hot new things inside the Linux and everyone was thinking about the concept of "container", one way or another.
There were already chroots and a lot of persons were already working on "app"/"module"/"package" systems using aufs/overlaysfs layers.
So, this was the moment and a few competitor were emerging like lxc and docker. Docker was very good to take the of the media cover and hype and so to become the dominant way to have "containers". But, at the beginning, there was nothing particular in the technology and lots of competitors could have done it if it was not Docker.
Certainly my recollection is that containers didn't enter the zeitgeist until Docker came around. LXC and OpenVZ had existed for years before Docker, and Jails/Zones had existed in BSD/Solaris for years before that. Mentioning the long-standing existence of these tools was a favorite pastime of Docker detractors in the early days.
Really, Docker's innovation wasn't the ability to run processes in a container (as mentioned before, that technology had existed for years already); it was the Dockerfile and the Docker hub/container registry. Prior to Docker, the way you'd build a container was by running debootstrap or unpacking a tarball/zip file of a root image. Take a look at https://developer.ibm.com/tutorials/l-lxc-containers/ . As far as I recall, there was no LXC equivalent to `docker build` or the registry except maybe wiring up Packer or home-grown shell script and throwing a tarball in S3 or something.
The Docker registry is what made Docker popular. (One could even suspect that free hosting for developers wins popularity contests.)
What made Docker really explode was when it ran on Mac and Windows. The cloud runs on Linux, but desktop computers generally don't, mostly for cultural reasons.
This made for an explosive combination. There are probably similarities to Github here.
Yeah, Docker nailed the UX right but screwed up the implementation and community building.
> Red Hat specifically “weren’t part of the community, they never rooted for the success of the Docker,” he said. “The mistake on our end was desperately wanting them to be part of the community. In retrospect we would never have benefited from that partnership.”
I understand how it seemed like other open source companies were dictating terms, but Docker's implementation was crap: one fat daemon running as root, no sandboxing, no cryptographic signatures, and a total lack of integration with the rest of Linux. Red Hat gets to define how containers should work on the back end because it pays for ~7% of all kernel development (compare that to Canonical's ~1%) [0]. But instead of cooperating with others in the Linux ecosystem, Docker only begrudgingly adopted interoperable standards while Red Hat, CoreOS, Intel, and others implemented fundamentally better solutions.
> We didn’t work at Google, we didn’t go to Stanford, we didn’t have a PhD in computer science. Some people felt like it was theirs to do, so there was a battle of egos. ... Kubernetes was so early and one of dozens and we didn’t magically guess that it would dominate.
Google had experience running containers at scale and was using K8s as an opportunity to retool their internal proprietary solution. It sounds to me that Google engineers tried to explain to less experienced team the best path forward ... and Docker took it as an insult.
Sure, not everyone needs all the features of K8s, but Docker could have built a simpler interface on top of K8s and benefited from Google's investment. Instead they built a half-baked competitor that didn't work well. Whoops!
Docker delivered a slick developer UX but their architecture was antithetical to how Linux developers thought it should work. Then they spurned offers of help from both the hyperscalers and the dominate Linux enterprise vendor [1] and chose to build inferior solutions for those markets. Now they are stuck selling their pretty UI because that's the only thing Docker does fundamentally better than anyone else.
At least, the founders of Docker are honest and clear in my opinion:
<< Hykes disagrees with this assessment. “I think that is wrong and generally speaking the core open source product created massive growth which created the opportunity to monetize in the first place,” he said. “Lots of companies monetize Docker successfully, just not Docker. There was plenty to monetize, just Docker failed to execute on monetizing it.>>
There is still a thing that is missing there: the article let think that docker was an innovation out of nowhere and they had an unique idea that was kind of spoiled.
But, one has to remember the context of the period when Docker was created:
It was a time were cgroups and "namespaces" of network, process, ... were the hot new things inside the Linux and everyone was thinking about the concept of "container", one way or another.
There were already chroots and a lot of persons were already working on "app"/"module"/"package" systems using aufs/overlaysfs layers.
So, this was the moment and a few competitor were emerging like lxc and docker. Docker was very good to take the of the media cover and hype and so to become the dominant way to have "containers". But, at the beginning, there was nothing particular in the technology and lots of competitors could have done it if it was not Docker.