Why you should learn Docker
Coming From a Software Developer background, I will tell my opinion on why you should learn Docker.
Using Docker has already been part of my daily task. In fact, my personal website is also running in a Docker container. And by using containers, I can deploy my website to another host server without doing all the manual setup.
Why you should learn Docker – As a Software Developer
Docker is a great tool for Developers, I mean you don’t have to be a seasoned System Administrator to start using Docker. It’s easy to install in your Desktop and create your Docker Hub account to start deploying your application images. At the same time, if you go in depth there are more features that you can utilize like docker-compose
and swarm
.
Using Docker client to interact with dockerd
is fairly easy to understand. Also it has an SDK for GO, Python or you can write your own HTTP API wrapper.
I think Docker is the most popular containerization tool out there. As a matter of fact, you can find many Docker images that are ready to use as a base image for your application.
In addition, I have to point out that Docker is also very well supported by Kubernetes (K8s).
What does it good in your Resumé
If you work in a Company that has a medium to a large team of Developers, the chance of them using a containerization technology is high.
Also for Microservices architecture and CI / CD practices the use of containers is ideal. Thus, there are many Companies already that has adopted to this technology, as a proof you can see the list of those and its use cases in Amazon EKS and Google Kubernetes Engine.
I think overall, having this skills up in your sleeves gives more value to you.
Is Docker applicable for your Project
Your project should benefit from Docker if you are developing a Web Application or something that is using TCP and UDP protocol.
A real world example would be an API app that require a Web Server. And Let’s say it also interact with the Database. You will also need a server side programming language such as Python or PHP. For all of these tasks there are already Docker Images ready for production use like httpd, MySQL, Python, PHP.
Benefits of Containerization
Deployment using containers can help in improving the quality of the software application by packaging its components. Here I am giving some of the benefits that I think you should consider.
Portability and Consistency
You can run containers in Linux, Windows and Mac, in a bare metal or virtual machine servers and the application will function just the same. With this, it is smoother to ship your application between environments from local, testing, staging and production.
Reliability and Persistency
Another feature that I like about Docker (Swarm) is its internal load balancing to distribute incoming requests to multiple services. Also its restart policies gives you control over what should happen when the containers exited or died.
Scalability and Economical
In Docker Swarm, you can scale up or down the number of containers in the service depending on your work load. If your application is running in a busy time you can scale up to accommodate the traffic.
Although a better solution probably for this kind of task is using K8s, which can also run Docker containers through its pods.
For managed container orchestration services, check out also AWS ECS and EKS.
Conclusion on why you should learn Docker
Being a Software Developer, I believe it is the more reason you should learn containerization.
Since you are the one developing the system, you should know at least the concept of containers. That way you can design the interaction between your applications properly.
I hope that I have given you enough reasons to consider learning Docker. Now you can also read my next topic on Docker commands cheat sheet.