tl;dr: Docker’s profit center was an enterprise version of Docker swarm for container orchestration. Kubernetes displaced it for free.
Cloud giants all wanted a piece of the pie but when elephants fight, the grass gets trampled. Each pulled Docker in its own direction.
Docker tried to build and monetize both the developer and enterprise (for deployment) products, unfocused, but couldn’t convert enterprise customers, who instead built their own solutions or worked with established partners. “There was a fundamental inability to deliver commercial software” said Nick Stinemates, VP of business development. “I would have held off rushing to scale a commercial product and invested more in collecting insight from our community and building a team dedicated to understanding their commercial needs.” Docker had a few misses:
Pivotal, Red Hat etc. commercialized Docker in their PaaS products (OpenShift, Cloud Foundry) but Docker the company didn’t. Early customers like Amadeus turned to Red Hat to fill Docker’s enterprise void.
Docker missed Kubernetes, thinking it was too complicated and Docker Swarm would be more successful. In 2014, Docker could have managed the Kubernetes team with Google to rule the ecosystem but forewent it. Craig McLuckie (Kubernetes cofounder) offered to donate it to Docker. (https://kubernetes.io/blog/2018/07/20/the-history-of-kubernetes-the-community-behind-it/)
How to commercialize open source?
Docker’s founder and CEO disagreed on direction. Ben Golub (CEO) wanted to move to business earlier, Soloman (founder) wanted to stay community driven to grow naturally. This made 2 Dockers: Community Edition (CE) and Enterprise Edition (EE), without officially splitting and dividing resources accordingly. CE was a massively popular command line tool and OS project. “we determined that Docker had two very distinct and different businesses: one an active developer business, and the other a growing enterprise business. We also found that the product and the financial models were vastly different” said CEO Rob Bearden.
Ben Kepes wrote “They thought they could create a walled garden off the back of an OSS project and failed to see there was no obvious way to scale revenue from their model” which Krish Subramanian echoed “any orchestration but with our batteries attached”.
Docker failed to build friends in the wider open source community. “Docker paid the price for blocking contributions and not having an open community” wrote Krish Subramanian. “Docker made no friends at all in the industry. My experience was they were convinced they needed nobody, were better than everybody, and it was essentially fate. Turns out you need friends when the industry turns” wrote Adam Jacob.
“Open source is non-rivalrous. Figure out a way to monetize that doesn’t set you up in opposition to your community, and people will love you. But if you need to diminish the community in order to be successful, people will treat you as if your product is proprietary” said Van Lindberg.
In 2019 Docker sold the enterprise department to Mirantis, whose product was absorbed into Mirantis' Kubernetes engine.