DEV Community

Discussion on: What is Docker, and why is it so popular?

Collapse
 
thomasjunkos profile image
Thomas Junkツ

Hello Dave,

thank you for your insights.

To complete the picture a bit, one might add:

The idea to compartmentalize the OS to efficiently use ressources is a bit older

  • Before docker the common virtualization technique was using OS level virtualization. IIRC Vagrant was the tool du jour

So the big selling point of Docker was that it allowed to solve two problems at once; separating the Kernel from the Userland allowed

  • run different software stacks which were either incompatible with the OSses software stack or incompatible to each other

Each container comes with its own userland

  • use a shared kernel and minimal common userland minimizes the space used for the actual userland necessarry to operate in contrast to a full blown installation of kernel and userland when using OS level virtualization

Nice side-effect:

  • faster spin-up time for the stack as a whole

Additionally:

In conclusion, Docker is popular because it has revolutionized development

From what was said above, I believe it is popular because it made efficient deployment possible which is a different POV.

When you should not use Docker or containers

When using a single machine as a single deployment target with very few processes running. Say your typical OTS web application with a DB and low to medium traffic where it is even OK to run everything on a single box.