Running applications in containers instead of virtual machines is fast gaining momentum in the IT world. The technology is considered to be one of the fastest growing in recent history thanks to it being adopted by key names in the industry alongside many software vendors. At its heart of this ecosystem lies Docker, a platform that allows users to pack, distribute and manage Linux applications within containers. The company and its software have grown immensely since the moment they penetrated the market, now seeking to invest in furthering the usability of the container technology.
But what makes Docker so special? Why has it seen this unparalleled growth and is even as we speak used by practitioners from all over the world. In the following article we seek to highlight some of its best features.
Simplicity and faster configurations
One of the key benefits of Docker, and perhaps the one it advertises the most, is the way it simplifies matters. An advantage of VMs is allowing the user to run any platform with its own configuration atop the infrastructure of the user. Docker is able to offer the same without the overhead of a VM. Users can take their own configuration, put it into code and deploy it without any fuss. As Docker can be used in a wide variety of environments, the requirements of the infrastructure are no longer linked with the environment of the application.
When it comes to working in a developer environment, two major goals come at the forefront of our minds. The first is bringing the product as close to production as possible. This can be done by running every service on its own VM to showcase how the application works. However, at the same time, we do not want to add in overhead whenever a compilation is required. The second goal is making the development environment as fast as possible for interactive use, thus receiving feedback in a timely manner. This is where the zero overhead of Docker comes into play. Seeing as a development environment has a very low memory, Docker shows its functionality by not adding to the memory footprint and allowing a few dozen services to run within it.
In the past, bringing up new hardware used to take days. The appearance of VMs took this timeframe down to minutes. However, Docker manages to reduce deployment to mere seconds. This is due to the fact that it creates a container for every process and does not boot an OS. Data can be created and destroyed without worry that the cost to bring it up again would be higher than affordable. Moreover, by having a low cost of bringing up a new instance, resources and even be allocated in a more aggressive way.
There’s a whole lot more to Docker than has been given in this article, but this should be enough to give you an overview about it’s major benefits. Like most open source projects, Docker is built from a fast-developing codebase, so make a habit of visiting the project’s blog page for the latest information.