Why I love Docker

I’ve been using Docker for a year now, developing and deploying both professional and pet projects, and I love it.

In fact, it’s so much better than my previous stack (a mix of Vagrant and Puppet) that I’ve made a video of my top five reasons for loving Docker!

In brief: what makes Docker so good?

  • Portability – Docker containers can be run on any Linux server : your laptop, your local server, public or private cloud, etc. It means that, if you want, your local development environment can be exactly the same as the production environment. What’s more, you can easily share the environment configuration with teammates.
  • Isolation – Docker uses resource isolation features of the Linux kernel, so every container run within a single Linux instance is independent and isolated from the other containers as well as the host.
  • Performance – Docker containers don’t include a separate operating system, like virtual machines do. Instead, they all share the same Linux kernel, and as as consequence, the performance of Docker containers is nearly identical to the bare metal!
  • Modularity – in Docker each part of your stack, like a web server or a database, should be run in a separate container. In fact, you can create your Docker environment using different containers linked together, the same way you build something with Lego bricks!
  • Community – on Docker Hub, the ultimate source of Docker images, there are 86 official images for different tools and thousands of unofficial images created by the community. What’s more, there are more than 50,000 repos on GitHub connected to Docker.

If you prefer reading to watching videos, see my blog post about Docker on Medium.

And, for a real life use case, check out my blog posts about developing schibsted.pl with Docker and deploying schibsted.pl with Docker.

Published 2016-07-11