In the previous post, we discussed about what docker is. In this post, lets quickly understand why do we need docker.
The main factor driving Docker's enormously rising demand is the fact that it genuinely solves the major issue that haunts every development team: "It works on my machine...!"
Let's use a simple illustration to grasp it.
Let's say you have an requirement to set up an application stack including different technologies like web server, database, messaging system and an orchestration tool. In a traditional way, there are many challenges developing the application using all these different components.
First of all, each of these components must be compatible with the underlying OS on which you're running the application. Chances are that certain version of these services may not compatible with the OS and you then have to go back and look at different OS that is compatible with all of these different services.
Secondly you have to check the compatibility between these services and the libraries and dependencies on the OS. Problems can occur if one service uses one version of a dependent library while another uses a different version.
Then, you constantly have to go through the same process of ensuring compatibility between these multiple components and the underlying infrastructure, whether upgrading these components or changing the DB utilized for the application.
Additionally, it might be quite challenging to build up a fresh environment whenever a new developer joins the team. To finally set up their environment, the new developers must adhere to a lengthy list of instructions and execute hundreds of tasks. They must confirm that the appropriate operating system and versions of each of these components are being used. Additionally, although some developers could be at ease with one OS, others might prefer another. Therefore, you couldn't guarantee that the application you're designing will function consistently in different environments.
This compatibility metrics issue is usually referred to as The Matrix from Hell.
This is where the docker can help with the compatibility problems and something that will let to replace or modify these components without affecting the other components and even modify the underlying OS as required. With Docker, you can execute each component in a distinct container with its own dependencies and libraries while still using the same virtual machine and operating system. Once the docker configuration has been created, all developers may get going with the simple docker run command. All they need to do is make sure Docker is installed on their system, regardless of the underlying OS they are using.
In a nutshell, Docker makes it simple to build, distribute, and run programs using containers. It mainly focuses on the developer's packaging of apps with all of their necessary libraries and other dependencies in a container.
I hope you now understand what Docker is and why we require it.
Thank you for reading.
*** Explore | Share | Grow ***
Comments