Reasons: 1. It is easier to maintain a Dockerfile than having to curate a VM image for every release. 2. Containers consume less resource (except on Windows since it doesn't have containerization) than a full blown VM.
Reasons: