Introduction to Docker 
Tags: docker, devops
Published: 2021-03-11 06:11:34

**Introduction:** 

Can you recall how many times have you faced this issue that a code works on a developer system but the same code does not work on the tester system? 

Docker at a very basic level resolves this issue of an application working on one platform and not working on some other platform. However, there is much more to Docker. 

**Where does docker come into the picture?**

At a very high level the following steps are the stages of a software devlopment life cycle :  
 - Design 
 - Development 
 -  Deployment 
 - Testing/Release 

Docker comes into the picture at the deployment stage of the software development lifecycle.

Docker helps in making the process of application deployment very easy and efficient and resolves a lot of issues related to deploying applications.


**What is Docker?**

Docker is the worlds leading software container platform.

*What does this mean?* Let's understand in an easy way.

Today, we talk about software it is not a single piece of code. However, it is an entire software stack a typical software application will consist of a group of front-end, back-end, databases, servers, libraries, and other  environment-dependent components and we also have to ensure that all these components work on our different and wide range of platforms 


It becomes very complex to ensure that each of ours software components works on every possible platform where the application is expected to run. 

**How to solve this problem ?** 

To solve this problem let us look at a similar problem that existed many many years ago in the shipping industry and that was *how to transport different goods having different size, shape and requirements to a different location of the world*   again the situations become very complex.  So, how did the shipping industry solve the problem? they solved the problem by using containers. So, containers are the standard boxes where the goods can be packaged in the standard way. Container made the shipping of goods very easy, efficient, and very cheap. And this revolutionized the shipping industry. 


**Coming to our problem:** it looks like we have a similar kind of solution and the solution is again using containers and using a standard way of shipping these containers and here comes Docker. 



*Docker is a tool designed to make it easier to deploy and run applications by using containers and Containers to allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.* 

Now, you can imagine a developer will package all the software and its components into a box which we call a container, and Docker will take care of shipping this container to all the possible platform in a standard way and this is how we resolve the issue of an application working on one environment and not working another. And you can see there is a clear separation of concerns a developer will now really focus on creating the code and the software and will package the software along with all its dependencies into a container and will not worry about how this will be deployed on what all platform it has to be deployed and so on and docker makes this process of deploying software.  


Happy Learning ;)