For me one of the worst were Docker for Desktop on both Mac and Windows, especially when used for local Kubernetes. I fixed this with a project running Kubernetes directly on a local virtual machine(s) and local Docker (without polluting the machine with Docker for Desktop) is a bonus that comes with that[1].
When Docker for Desktop came out, I refused to move from Docker Toolbox. My reasoning was probably illogical but my view was that if you're maintaining a number of projects, each of which runs in their own Docker environment and some of which had duplicate container names, then having the power to start/stop different Docker engines for each just made a lot more sense to me.
[1] https://github.com/youurayy/hyperctl