Docker: What is it, and Why is it so Important?

By Chris Roach

Docker  is a management tool that allows you to wrap all the necessary parts of an application into containers. While container management tools aren’t anything new, Docker’s open source platform really differentiates it from the competition. At Gauge we’re definitely fans of open source software (hence our love of Magento). Making software open source allows other developers to continually improve and build on the original features, and everyone using it can reap the benefits. Just by visiting the Docker GitHub page you can see that over 30,000 developers are watching its progress, and over 1,400 developers are actively contributing to the software, adding bugfixes, features, and code optimizations. As more people realize the benefits presented by software like this, those numbers will only rise. So what are these benefits? Well, let’s talk about a few of the most important ones.

Increased Portability

The ability to add to the container and then deploy across multiple platforms allows Docker to be run almost anywhere. This is important because it lets developers write code on a local development environment, test it locally and then push to production without having to worry about things not working. All environments are exactly the same; you won’t hear the phrase “It worked on my local environment!” ever again.

Faster Startup Speeds

At Gauge, we try to have all our clients running on the same environment, but with so many hosting solutions and CMS systems being used, this just isn’t a feasible or scalable solution. For our developers, switching between client production environments used to mean wasting time waiting for virtual machines to get up and running. Not anymore. Docker allows us to easily start and stop the correct containers for each client in seconds. Getting our local environments up and running quickly means we can get to work fixing issues right away.

Higher Security

All Docker containers are run as isolated environments, each with its own process space and network space. This allows the Docker container to run only the applications you really need, cutting down on security patches and updates while eliminating unnecessary risk. Additionally, because the software is open source, many developers have contributed wonderful security tools for scanning and securing containers. Docker lowers your maintenance needs, raises site security, and puts a ton of tools at your fingertips.

Smart & Efficient Debugging

Another great development feature: Docker lets developers troubleshoot production environment bugs locally. When things aren’t working correctly on a client’s site, we often have to enable many different debugging features to pinpoint the problem. These features, while effective, can slow down the site, which of course directly impacts conversions. With Docker, we can easily fire up our local environment, replicate the issue and debug locally before pushing a fix to the live site. Keeping diagnostic processes off the live production environment lets your site stay lean, light, and lightning fast.

While I consider the four features above as the most important advantages Docker offers, they represent only part of Docker’s long list of wonderful features. Because it’s a new application, Docker does still have some issues, and it’s missing a few features we’d like to see. That’s to be expected with any new application. The open source platform ensures that issues will be resolved quickly and new features will be added at a growing rate. If you aren’t using Docker yet, it’s time to start doing your research, because this application is only going to get better.