On Windows Docker Desktop is really fast, rarely crashes (once every couple of months I'll encounter something strange and restarting it always fixes it), it works seamlessly with WSL 2 and it seems to install and run without issues on a huge array of hardware / software combos. The last one is important and I'm making this claim based on the lack of support questions I get on my Dive into Docker course around installing Docker. Prior to Docker Desktop there were so many reports with Docker Toolbox around installation issues / errors, but now I get almost none related to installation and this is with a pretty big sample size too.
It's also a quick way to get a 1 node Kubernetes cluster running on your dev box which works perfectly out of the box, even exposing your services over localhost. Minikube and other solutions still require manual steps to get this behavior and personally I've found there to be a number of installation issues that aren't present with Docker Desktop, all of which were fixable but still required manual intervention to fix.
My team and I often use Docker images as part of our development process on our desktop machines.
With 19.03 it should still be possible to access the public hub, I think.
Otherwise, VMs are usually overlooked as an alternative to "docker images", most probably because many people entered the industry after docker images became popular, and they don't know anything else. If you design it properly, stick with establish technology like QEMU, you can have the same environment without having to touch docker at all.
That said, swapping from Docker to VMs for things is nowhere near as simple or straightforward.
The near-frictionless ability to stand up/tear-down a 'known' good image and configuration, with the ability to swap in/out networking, volume or other environmental configuration is what made Docker so popular.
We use Docker containers for a wide range of things, and while we could reproduce all of that as VMs - it would take a lot more effort, and it would introduce a lot more delays waiting to build/replace a VM.
> VMs are usually overlooked as an alternative to "docker images",
I don't think this is the only reason people use docker. Docker let's you compile an artifact and deterministically recreate that artifact at any point. When you want to deploy this artifact everything is hermetically included in it. No network access or startup time. Just starts and it's good.
If you have VM tooling that lets me do that without spawning a VM repeatedly and doesn't give me an effective way to modify the FS & copy my programs in (packer) then let me know. I haven't found anything VM related that's simple to use
In addition: vms still have a performance hit much more significant than processes.