What is docker and why is it so important ?
Let us understand what docker really is without getting into the fancy definition that is already available all over the internet.
Docker is an open source project for building, shipping and running software programs. It is a tool that solves common software problems and simplifies the experience of installing, running, publishing and removing software, and for doing so it uses a operating system technology that is a part of the LINUX operating system -‘Containers’ .
Simply putting, containers are isolated runtime environments that contain all the resources that a application program needs to run properly, including libraries, databases and all the required dependencies.
Containers are used for process isolation and platform independent computing.
Containers are a part of the UNIX- kernel for a long time, still they were out of the reach of most of the people because of the difficulty of building one manually. Building and running programs in a container is a complex task and easy to do incorrectly.
Docker has changed the history of container development process and these containers are now readily available to all the users just by using some simple docker commands.
Docker Containers v/s Virtual Machines:
Virtual machines uses hardware virtualization i.e. it uses hardware abstraction. We have to first install a complete operating system on our host OS to create a process isolation environment.
Docker containers on the other hand, uses the container technology already build in the kernel of LINUX based operating systems. Containers are just an operating system feature, a powerful technology that avoids the need of hardware based virtualization .