Docker allows us to run applications inside containers. These containers in most cases communicate with each other. We'll build an angular app in one container, point it to an expressjs api in another container, which connects to MongoDB in another container.
Full article