Docker has been the most popular tool to be used in the development world. Docker helps solo developers and large teams to deploy one server to large enterprise organizations to deploy sophisticated web application consisting of 10s or 100s of microservices. Now the question is, why do solo developers or large organizations use docker? There are three main reasons to use docker.
1. Time and Money Docker helps you isolate the app from each other for example consider you have 12 apps each having their own dependencies each written in different programming language and now you to test each app what you commonly do you would spin up a Virtual Machine and then install all the dependencies that are required by the app and after installing all the dependencies you would finally test the app. This process is very time consuming and requires a lot of patience. Now imagine doing this for all the 12 apps that you have. This results in a lot of waste of computing resources and Money that is consumed by the virtual machine. How does docker help in such a situation? Instead of duplicating everything docker will share a common ground space between those applications and only disk space will be consumed. Time: Docker saves time, and a lot of it imagine if you spin up a virtual machine it takes almost 1–2 min just to set up the virtual machine and on above of it you need to install all the dependencies for the app instead of doing all this you need only one command and docker will spin up a containerized version of your app for testing or even production. To know how does docker do it follow us.
2:Portability Have you been in a new place at a job where you cant understand the git hub repository of the code base, and you are spending almost days just setting up the developing environment to work with the code even if its not your problem and you are following each and every step given in the documentation but still its doest work? Heres, where docker comes into play as docker packages all the dependencies, requires by the app into an executable container you can store it of docker hub and pull it whenever you/employes need to work with different computers
3:Freedom to work with any programming language You all would agree that: Less burden == More flexibility So once the burden of installing the dependencies and going through troublesome documentation of setup, the developing environment is gon you have much more time, and at this time, you can experiment with your app. Maybe you could use a different language or try different technologies, and there is no problem if you make a mistake while experimenting with the containerized app. Take an example if you do a step that messes up the entire developing environment, and now everything has broken no issues when docker is here just one command and your container is erased and if you want to work with is again just one single command, and you are good to go.