In this Docker introduction article, we will talk about below topics.
What is Docker?
Docker is a program, made up of several services to provide a consistent way to develop, package, ship and run an application on almost any platform. We will discuss all of these services more in details later.
We all are aware of the statement when your colleague says, “it worked on my machine”, GOD knows why it is not working for you. Docker helps you make the app platform agnostic so that it runs on any platform.
Docker is more about managing your infrastructure, just the way you manage your applications. Docker provides a consistent way to package, ship and run your application across DTAP (Development, Testing, Acceptance, and Production) environment. In a simple sentence, you can package your application as a Docker image and run the same image in dev, test or even prod, which interns save a hale lot of time that you usually spend in configuration or installation of your app in all these environments.
How was Docker born?
Docker was originally an in-house project initiated by Docker Inc. (formerly dotCloud). It was based on the innovation of dotCloud’s multi-year cloud service technology and was open sourced in March 2013 under the Apache 2.0 license.
Docker has received great attention and support from the community since its inceptions and it is available on GitHub.
Docker uses Google’s Go language for development. Docker is based on the Linux kernel cgroup, namespace, and AUFS like Union FS and other technologies to encapsulate the process of isolation. The isolation environment that Docker creates is called a container.
Why Docker is popular?
Earlier, virtual machines were used to achieve resource isolations. Resource isolation is the core of resource management strategies. Say if you have a bare metal server with 32GB RAM and 8 Core processor, using resource isolation you want to make sure that Database server occupies 8Gb RAM & 2 Cores, App server – 16Gb RAM & 4 Cores and Nginx occupies the rest. Virtual machines are heavy and difficult to manage, Docker dominates that market because of its simplicity and lightweight nature.