Distributed Systems Practice Notes

Docker and Containers - Why Docker?

October 22, 2018

“By 2020, more than 50% of global organizations will be running containers in production.” -Gartner

What is Docker?

Docker is a fast growing container technology that covers the entire lifecycle of software management, involving developers, system operators, build engineers, testers, system admins and any roles in between in a consistent environment.

The shift to containers is happening fast in the world of computation infrastructure.

Why use Docker?

Docker is all about speed.

  • Develop Faster
  • Build Faster
  • Test Faster
  • Deploy Faster
  • Update Faster
  • Recover Faster

The “Matrix from Hell” breeds complexity

Without container technology, to manage a multi-tier application could be very complex. Different components of app such as web frontend, backend workers and databases require different dependencies, environments (e.g. developer machine, testing infra, and production env), even different operating systems.

Containers allow you to run and test the software the same way everywhere you are running it. Docker frees us from the tasks of the repetitive daily maintenance and allows us to get more time to innovate.

Smooth Migration

Docker is focused on the migration experience. Migrating app to docker containers does not require rewriting the app. Container is just a different way of running and packaging the app, moving the app around your infrastructure.

Cost Reduction

Docker compacts different apps into isolated containers that run on a single machine, reducing the waste of computation infrastructure resources.


Warren

Written by Warren who studies distributed systems at George Washington University. You might wanna follow him on Github