Unaffiliated being a critical part there, because of course Microsoft, AWS, etc contribute back to these projects. But, many, many of the developers on these projects are unaffiliated, often working at smaller companies/consultancies with no affiliation to the megacorps that make billions on the software.
Yet, I've not once noticed a single instance of aforementioned drama. What makes Docker, MongoDB, etc different? They're open source products developed and monetized by singular corporations, not communities or non-profit cross-functional organizations like The Linux Foundation. Its a big corporation slighting a smaller corporation.
This may reveal a bias in online discourse, especially on HN; we revere corporations, not people. We want to protect venture-backed Docker, but the individual developers working on, say, Postgres? Less deserving. Peter Eisentraut, Bruce Momjian, and Dave Page are core maintainers of Postgres, all working at a company named EnterpriseDB, who sell managed Postgres offerings. Why doesn't anyone complain about AWS screwing over Postgres?
Well, there's something bigger at play: Its actually, totally alright if megacorps use Linux, Postgres, whatever in this way. Developers enter these projects knowing it'll happen, and these projects are healthier than ever. That's a beautiful relationship right there! No drama. No one slighted. If these companies give open source back, that's great, but I don't expect them to (exempting GPL requirements of course), just like no one expects me to contribute every bit of code I write just because I coded it on Ubuntu using vim and linux and gnome and docker and such.
With Docker (and similar corporations), someone is slighted; its the company that was also trying to make money on it. And I think that's just mismanaged expectations at every level; the company believing they could build an OSS community of users and builders while still extracting profit, the leaders for accepting venture capital, and the users believing a company could solely develop and distribute something as complex as core application containerization or a database.
To be clear: I have a lot of respect for Docker continuing to run Hub for free as long as they did. They're an awesome company. No qualifications around that; I hope they find success in the market. I just don't believe that success will come at the scale and valuation they expect, because they aren't selling what customers want to pay for. AWS is.
Here's to the high water mark of open source. It was good while it lasted.
Its risky to mistake a golden age of open source with "these companies just had infinite VC funding for a while, before realizing they need a sustainable business". So they try to strike a balance, which makes everyone unhappy because the open source advocates say they're turning back on their promise to the community, while enterprise advocates say they're too focused on hyperscale and not enough on solving actual enterprise problems. Some have survived, some are still in the VC honeymoon phase, many died (RethinkDB, CoreOS, etc).
These companies, and the products they made/make, do not represent a high watermark of open source because generally speaking their products die with them. There's no community to sustain it when the corporate sponsors disappear. And here's the funny thing: If there were a community, if you built a product so awesome that people love it and develop for it and use it by the millions, you're now Docker. The open source gets you to where you are, and now you just handed all of your competitors not just market validation, but the literal specification on what to build. And what it takes to protect from that would make you MongoDB; kinda open source, definitely not FOSS, lots of closed source components, enterprise, no community. Neither of these are model high water mark open source companies, because one is bad open source, and the other is a bad company (financially).
What's the best kind of open source? Code which was written to solve a problem a company (or person) has in their business (or personal life), then released because more people than they are having this problem. Golang? Made at Google as a language that was simpler to write and harder to mess up for engineers right out of college. Rust? Improving Firefox reliability. I almost weep at the strong story behind these projects; the technology wasn't created just to sell, it had a purpose that was validated (to some degree). Not technology for the sake of technology, nor technology directly for the sake of money, but for problem solving. Docker, MongoDB, CoreOS, none of these companies had problems; they invented problems, or inherited problems from previous jobs, then sold solutions.
Open source doesn't write code. People write code. People who see their code get commercialized by competitors. They update their priors and next time they are in a position to choose whether or not to open source something, they do so keeping in mind what they have learned.