What Is ‘Docker’ & Why Is It So Amazing?12 Sep
One of the hot, trending topics these days is the Docker platform. Authored by Solomon Hykes, founder and CEO of dotCloud, Docker takes application deployment to a level unseen. Docker is making things easier for developers and system administrators alike. So, what exactly is Docker? What’s all the hype about? Let’s find out.
What Is Docker?
“Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.”
What does this mean? It means that developers can build an app in any language using any toolchain and can run absolutely anywhere. For system administrators it means they can better understand how an app runs and how it works as Docker manages and tracks changes and dependencies. Furthermore, system administrators can use Docker as a standard environment for development, QA, and production teams.
What’s So Great About Docker?
As said above, Docker makes things simpler for developers and system administrators alike. We all know that these two spectrums can often butt heads when it comes to application development, QA, and deployment. Docker essentially helps to streamline this process. It’s also much different than simply using a virtual machine.
Virtual applications often include not only the application and its libraries but also a guest operating system. These operating systems can often be 10s of gigabytes in size while the application itself may only be 10s of megabytes in size. The Docker engine is made up of just the application and its dependenices and does not require a guest OS. As Docker puts it:
“It runs as an isolated process in userspace on the host operating system, sharing the kernel with other containers. Thus, it enjoys the resource isolation and allocation benefits of VMs but is much more portable and efficient.”
This in itself is a major benefit of Docker, as it allows application development and deployment to be done in a much faster and leaner fashion. In modern technological times we all want to do things faster without sacrificing other areas of development and production. Docker is the platorm that makes this possible.
Below is an illustration of the two sides of Docker, the Docker Engine and Docker Hub. The Docker Engine is the lightweight and portable application runtime and packaging tool. The Docker Hub is the cloud service for sharing applications and automating workflows. The Engine is depicted on the left, and the Hub on the right.
Docker is used by some of the country’s and the world’s leading organizations, including eBay, Spotify, and Yandex – Russia’s largest tech company. There are a number of use cases for Docker already, and more and more organizations are taking advantage of Docker every day. Perhaps the best way to get acquainted with Docker is to give it a try using their online tutorial. We did it ourselves and found it to be quite easy to use and fantastically intuitive.
Docker is certainly a trendy topic these days, and we all know how fast trends can fade. However, it appears as if Docker is here to stay, and that will make a lot of developers and administrators very, very happy.