It would be nice to add Docker as a another VM to compare.
(Docker is Linux only. To run a Docker container on OSX, you need a Linux VM.)
In short: the right way to use VMs is as dumb chunks of hardware. Using them as logical units of software makes increasingly less sense as container-native tools get better.
(disclaimer: I'm the Docker guy :)