DEV Community

Cover image for Why Docker?

Posted on

Why Docker?

Before I talk about Docker, let me give you a common problem in software development that developers used to have.

Let’s say a developer who just finished developing and testing a new feature worked fine on their environment. But when the same code reached production, suddenly, the system crashed. One of the possible reasons is that the development and production environments are different from each other.

Before Docker, developers would use Virtual Machine to create a virtual environment to ensure that the developer’s station matches the production server. The problem with that is now we are wasting resources and not able to usefully our Disk Space, Memory, Processing Power, and more.

Docker is different to set it up and use. It is installed directly onto the user’s machine, and developers can install multiple containers responsible for their microservice. As you can see, we didn’t have to allocate any of the resources for our containers, and it will automatically use what it needs for the need of an application.

We can now have our code base with all the tools running equally on any environment with that setup.

In conclusion, if you were to start to work on the project, I would recommend using Docker as it will remove the environmental issues.

For more tips, subscribe to my channel and don't miss the future topics.
YouTube - DevPool

Top comments (4)

pierrewahlberg profile image
Pierre Vahlberg

This is a very good reason to use it, although it is a very very shallow description on how docker operates, which is NOT the same on all operating systems, even though it attempts to behave the same. Nor is docker in itself a full dev-to-production solution. You would need app delivery, hosting, monitoring, security and more.

I advise people who find this article interesting and want to switch methodology to read about best practices and culprits. There are maybe no better options, but do so mostly for the sake of not walking blindly into a new suite of problems (which I have done) without being prepared. Especially if this is a business decision that you could be held accountable for :)

Read up on:

  • docker development
  • building your own images
  • distribution of simple to use docker dev environments
  • tools to use for security scanning
  • debugging methods/tools for docker or apps running in docker
  • logging and monitoring
  • container cluster solution in prod (aws, kubernetes, vps etc)
  • what it would mean for a person/team to be responsible for the new setup (it will take much time done fairly right)
  • evaluate if your apps would fit in the stateless nature of containers as they are "intended" or taugh today (replication, redundancy)

Good luck!

devpool3000 profile image

100%! This are the things to look into next, if people were inspired to used docker (this was going to be in my upcoming articles lol)

vishalraj82 profile image
Vishal Raj

@devpool3000 Surely agreed. Here is my related article

devpool3000 profile image

This is definalty a good article to read next! I wanted to include all of the setup steps with a bit more information, in my upcoming articles haha