Docker

A developer tool

Docker

Table of contents

No heading

No headings in the article.

Before learning docker lets look back to history or past,

Earlier when docker came into existence, companies required single server for each applications which was not efficient as there were many problems like load balancing, cost, etc.

Therefore, VMware solved this huge problem by creating Virtual Machines which was far better as it allowed to run multiple applications in one server. But this also had one problem like, it needed a separate OS, dedicated storage, etc. These was overcame by using containers(these were used by google even before docker existed, we will look into detail over it shortly).

WHAT IS DOCKER?

It is an open source project or a container platform which allows us to build, test, and run applications quickly. Developers would define all their work in a docker file which is then build into a docker images that defines the docker container. It helps you to run any application smoothly in any environment.

Wow!! That's amazing. In simple terms, it allows developers to pack an application with all its requirements or dependencies into a container for software development.

WHAT ARE CONTAINERS?

Many applications today run on Virtual Machines(VMs). VMs run inside different operating system for each application, which runs in a virtual hardware followed by the server's OS. Virtual machine is a great way for providing isolation but at a very huge cost.

Therefore, containers provides most of the isolation of VMs in a fraction of computing power as it uses a single OS.

Fig : virtual Machines Vs containers

BENEFITS OF CONTAINERS

Containers helps developers to build their dependencies into a package where applications can be abstracted. This allows container based applications to run easily and consistently denying whether it run on private environment, personal laptops , etc. This helps developers to build application regardless of the environment as due to its isolation property it can run anywhere. Containers make large developing teams more productive and more efficient and also help to improve utilization of computer resources.

Due to this reason, containers gained a lot of popularity.

Note: As this blog is getting bigger, we will continue in next part.