I wouldn't go so far to call it a mess but there is some truth to it. Naively, one might expect the following use cases:
- test-drive even the most complex deployments on your laptop
- spin up all the cool admin tools you ever wanted without wasting months of precious life time
- reproducible setups
- everything is always up to date
But as you say, caching is at best in a mediocre state. If you indeed want to run heavy-weight servers (like ELK), be ready to have a Terabyte space just for images unless you want to GC all the time when tweaking the configuration.
Also the laptop thing doesn't work unless you either have a very beefy machine or just work with very lightweight software. In reality Docker can be used for these use cases:
- Test-driving some heavy weight or complex server software
- CI to some degree
I'm starting to think good old Unix tools in combination with automation tools like Chef, Ansible, ... are the way to go - or even just plain .deb files...