This blog represents my thoughts on why every developer must adopt dockers for their day-to-day development purpose.
I got introduced to Dockers technologies a couple of months back and trust me, I have started wondering on how I have been developing/coding prior to that. Honestly speaking, I am floored. Here are some of the top reasons why you should also give a shot to Dockers.
Bring up Dev Environment in No Time
One of the issue that I faced in the programming/development experience is living with same Dev environment through out the entire development cycle for months all together. At times, due to installation of software updates, the environment used to get corrupted and lot of time was spent on rectifying it. Also, due to configuration changes from time to time, the Dev environment moved or drifted from one state to another. And, I always wished if there was some way I could bring up Dev Environment in very quick time. This is where Dockers help. Based on the Dev environment requirements, one could create an image, and commit it. From next time onwards, one could quickly create and run the containers running the Dev environment.
Dump Dev Environment in No Time
In my development experience, I often felt the need to uninstall/delete the software and start afresh. Also, I wanted to experiment with different configurations while keeping my baseline configuration intact. And, the way I used to do it is create copies of different configurations while testing with one of them. With the Dockers, it has become so very easy. I could have a base image created and I could then create containers using this base image and test my configurations simultaneously. And, once done, I could easily dump my containers using command such as “docker rm containerName”.
Test Simultaneously across Different Dev Environments
Many a time, I wanted to have access to test my code in different environments comprising of different platforms/OS, configurations etc and I could not do it primarily due to several reasons such as availability of machines (physical/VMs) etc. All of this have changed after I have started working with Dockers. I could now test my application on different platforms by starting appropriate containers and testing the applications.
Test Simultaneously across Different Software Versions
Many a time, I wanted to test my application across different software versions. For example, I wanted to test my application across different Java versions. Traditionally, this could be achieved by installing software of different versions and setting environment variables such as PATH, CLASSPATH variables appropriately. With dockers, it has become as easy as creating and running containers (which takes no time) with different software versions and testing your applications on each of these containers.
Easy-to-create Dev, QA Environments
With dockers, gone are the days, when one would call out extra time and effort to create Dev, QA Environments. It virtually takes NO time. In fact, one could create Dev/QA images and developers/QA engineers could get hold of these images, start the containers and get their work done absolutely hassle free.
Above are top reasons that I could comprehend based on my experience of Dockers within last couple of months. There are other utilities which are specific such as creation of automation environments, high-availability (HA) environments that becomes very easy to achieve using Dockers about which I would write another blogs. In the mean time, please feel free to sight other reasons that you feel are important why every developer should/must start using Dockers.