Completeness of stack. If you're under the impression that your runtime ends where the Docker container does, that will eventually bite you--it's very rare for my workstation to be running the same kernel version as my servers and I've been bitten multiple times in the past by kernel bugs due to differences in version, so even if I use Docker (which is rare) I run it through a known-good virtual machine that mirrors production as closely as possible.
(Vagrant also has a Docker provider, but I can't think of a good reason to use it.)
(Vagrant also has a Docker provider, but I can't think of a good reason to use it.)