I've been using Docker since 2014 and IMO they did a great job in terms of API stability from an end user's perspective.
Lots of CLI commands from 5+ years ago still work today and the upgrade story with Docker Compose has been gradual, painless and most importantly pressure-less for having to upgrade.
They got the developer facing API just right making containers accessible but their promised plugin architecture never did come.
There was an arms race between them and the community to lead the story on new functionality. For example flannel came out first before docker acquihired SocketPlane for networking, while Calico was also in the works.
There was pressure from the community for a stable plugin API to allow for external contribution, but I imagine that it was ultimately against their best interest
Lots of CLI commands from 5+ years ago still work today and the upgrade story with Docker Compose has been gradual, painless and most importantly pressure-less for having to upgrade.