Docker containers vs VM approach on Azure [closed]

Okay, so I got the following design decision that’s been bothering me for some time and I’m curious what you guys think about it.

I’m trying to deploy a small system which consists of the following: an Angular front-end web-app, an elastic-search back-end and a Java back-end which does the heavy lifting.

The front-end web-app communicates directly to the Java back-end which in turn communicates with the elastic stack, and the web-app gathers the data from the ES db and presents it to the user.

However, as I’ve currently decided to deploy this with Azure I’ve come to the following design decision: should I use a single VM and deploy all of them as a bundle (making communication very easy) or create three separate Docker containers (one for Angular, one for the Java back-end and another one for the ES db) which will communicate like mentioned above.

Considering I’m quite new with Docker and I don’t really have much experiences, what are the pros and cons vs the VM approach?

Source: StackOverflow