What are containers?
Before we dive deep into what containers are, let us first look at how the landscape looked before we had containers and what problems they solved. Before containers, deploying applications was a more complex and time-consuming process. Applications were deployed to physical servers or virtual machines, and developers had to consider all the different operating systems, libraries, and other dependencies that their application needed and had to support them. To complicate things even further, this had to be done in different staging environments – for example, a development, testing, acceptance, or production environment.
This meant that the process of deploying software was often manual and error-prone. Developers had to manually configure and install the required libraries on each physical server or virtual machine. This led to inconsistencies between different environments and deployment failures, due to missing dependencies, configuration issues,...