For "local" deployments, if you can choose between a VM a or a Docker deployment, go with Docker as it brings more flexibility. Deployment on a VM is possible but you need to take care of all the peculiarities of the VM and your app, there is no one setup to fit all cases.