Docker is a set of platform-as-a-service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels.

It is basically a container engine that uses the Linux Kernel features like namespaces and control groups to create containers on top of an operating system and automates application deployment on the container. It provides a lightweight environment to run your application code.

Applications of Docker:
  • Use Docker as a version control system for the entire app’s operating system.
  • Use Docker to distribute/collaborate on the app’s operating system with a team.
  • Use Docker to run code on a laptop in the same environment as in server (try the building tool)

The main purpose of Docker is to Deploy applications to production environment or other environments as required by Ops. However, the highlight of Docker lies in the process of deploying it. Earlier, the traditional approach to deployment was via Virtual Machines (VM)