Computers have been one of the most fruitful inventions that humanity has witnessed in the last century or so. There have been many factors contributing to the rise of use of computers in almost all the fields from things as simple as adding two number to launching space probes to Deep Space. Many notable computer scientists have contributed to this rise. The computer has traveled a long journey from the ENIAC (Electronic Numerical Integrator and Computer) in early 1940s to the present world of Big Data, AI, Deep Learning.

Computers are dumb, unless a human writes something called as a software program to instruct the computer, what operations it has to perform.The people who are involved in creating software, make use of a process called SDLC (Software Development Life Cycle) which defines methods, phases, processes, other metrics that needs to be followed in order to ship the software according to business requirements.

There have been many development models like Waterfall, Iterative, Spiral, RAD, etc. One of the newest addition to this list is Agile which was officially coined in 2001. Another breed of Software Delivery methodolgy called devOps has sprung up to complement this.

There are many definitions of devOps, which varies from time to time and person to person.In its simplest form “DevOps is an approach to bridge gap agile software development and operations” [agileweboperations.com]
It tries to bring the traditionally different teams of Development, Testing, Operations, Security, Admin into one big family which work together to provide better services to the Business. The inception of using devOps in real-world projects has been termed as the next IT revolution. (http://info.puppet.com/rs/307-QLA-991/images/the-2016-State-of-DevOps-Report.pdf). Tons of tools have sprung out that helps an oraganisation to adapt to devOps startegies / refine their existing implementations.

docker is one of the most popular containerization platform which helps developers, operators, sysadmins to develop, build and distribute robust applications. This eliminates the classic ‘it-works-on-my-machine’ syndrome among developers (no offence intended!!). Available in two flavors — Community Edition [CE], Enterprise Edition [EE], CE being free of cost. docker can be installed in all major OS distributions including popular cloud computing platforms like Azure, AWS.

The traditional approach used to have a dozen VMs running under a hypervisor which acted as a layer between all the Guest OSes and Host OS. docker eliminates this dependency by not having to create separate VMs for applications.

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the “hello-world” image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash