Docker images use the union file system. That means when a new version of that image is available, you often only pull a few megabytes from the hub because it already has the OS.
A docker container is also way more lightweight. Instead of running a full OS, you I only run one process. So your docker image starts within seconds
For one, speed. Provisioning a VM image takes a lot longer than a container.
Secondly, composition. Can you provision and link the 10 instances that make up your application? Web servers, app servers, proxies, caches, databases, hadoop etc.
I think this second ability is the truly compelling one for me. The features that allow this (swarm and compose for docker, lots of other competing orchestration stuff) are still pretty young, but it would still push me in the direction of containerization over virtualization.
A docker container is also way more lightweight. Instead of running a full OS, you I only run one process. So your docker image starts within seconds