In this article I am going to talk about how to do a classic 3-tier architecture using docker containers. The 3-tiers will be: Frontend tier: This will host the web application. Middle tier: This will host the api, in our case the REST api. Database tier: This will host the database. We want to expose the web application to the outside world. Simultaneously, we want this layer to be able to talk with the middle tier only not the database tier.