Why should you learn docker?

Why should you learn docker?
Photo by Ian Taylor / Unsplash

Gone are those days when you could be an expert of a certain language/framework and survive as a developer in the Industry. In today's fast-moving tech world, you are expected to be a problem solver. Companies want people who can understand the business problem and build a solution to it, rather than have a solution and try to see if the problem gets solved or not.

To be a problem solved developers now have to keep on learning SQL databases, No-SQL databases, frontend frameworks, backend frameworks, no-code platforms, low-code platforms, on-premise setup, cloud setup, serverless setup, and the list goes on. I remember my initial programming days when I was super excited to learn a new framework or language, but the moment I got into the installation setup, it would kill all my excitement, since there would be some or the other config which was tricky to do and I would spend at least couple of hours to find the solution to that problem over the internet.

Enter "Docker"

I still remember, somewhere in mid-2019, one weekend I wanted to learn something new and then picked up Docker. That weekend has been a game-changer for me. Prior to that, I knew that there was something docker and in my previous company HealthifyMe, we had a way to setup docker locally, but most of the developers avoided it due to the learning curve, and I too joined the herd.  

I took a PluralSight course "Docker for Web Developers" and the rest was history, for that weekend onwards I got additional confidence in trying new frameworks and technologies, because, I didn't have to worry about messing up my local system.

Docker for Web Developers
Docker can bring many benefits to your development workflow and deployment process. Learn how to use Docker tools, commands, images, containers, and much more.

Here are a couple of things that I owe to Docker

  • Improving the speed of execution.
  • Pick random technologies which are trending and start experimenting local without the hassle of installation and config.
  • Dockerize all the projects I tend to work with. The first task I picked when I joined Postman, was to dockerize the current repository for local development. Definitely, it wasn't a smooth experience, but the journey was worthwhile. Now all the services which I work at my work are dockerized and any developer can set up the system, up with just a single docker-compose command. No more we have the issue of updating the onboarding doc on steps to install the project.
How to configure Webstorm for docker container node_modules?
The TLDR answer:The path inside the container has to be /opt/project (exact path) where you are loading the project file and also installing the node_modules. Unfortunately, it is not well documented, and also no way to update the path as of now. The Detailed Answer:If you
  • No more I had the fear of working with anything new because I realized installation of any new technology was just a single docker-compose command away
  • Pick freelance projects and switch between projects using a different version of the language without any worry of breaking existing projects.

Here are a few downsides(upsides also) that I have experienced

  • I tend to dockerize every project I work on. Would spend an additional couple of hours on setting up a project with docker
  • My MacBook pro becomes a furnace when I work with docker and JetBrains IDE.
  • Make every developer I work with, start working with Docker, (make them hate me in the initial weeks, only to thank me later 😎)