Provisioning multiple-container environments
One of the biggest problems that we have when we are working with distributed applications is the difficulty of provisioning all the dependencies that an application needs in order to work. For example, let's say that you're working on an application that is persisting information in a MySQL database and using RabbitMQ for sending messages, as shown in the following diagram:
Application with RabbitMQ and MySQL dependencies
In this case, all the developers on the team will need to install MySQL and RabbitMQ on their computers if they want to have the whole environment working locally.
Installing a couple of tools is not so difficult, but as soon as your application begins to have more and more dependencies, this task becomes a nightmare. This is the exact problem that Docker Compose addresses.
Docker Compose
Docker Compose is a tool which lets you define and execute multiple-container Docker environments. This means that every dependency in your application...