# Docker

## What is Docker?

> 1. Docker is an open-source, centralized platform designed to create, deploy and run applications.
>     
> 2. Docker is a set of "platform as a service" that uses operating system-level virtualization. Whereas VMware uses hardware-level virtualization.
>     
> 3. Docker is written in the "Go" language. It is a tool that performs OS-level virtualization, also known as containerization.
>     

### **Advantages of Docker :-**

> 1. Less Cost.
>     
> 2. No pre-allocation of RAM.
>     
> 3. CI Efficiency- Docker enables you to build a container image and use that same image across every step of the deployment process.
>     
> 4. It is lightweight.
>     
> 5. It can run on physical hardware/virtual hardware or the cloud.
>     
> 6. We can reuse the image.
>     
> 7. It takes very less time to create the container.
>     

### **Disadvantages of Docker :-**

> 1. Docker is not a good solution for application that requires rich GUI.
>     
> 2. Docker does not provide platform compatibility. This means if the application is designed to run in a docker container on Windows then it can't run on Linux or vice versa.
>     
> 3. The docker is suitable when the development O.S. and testing O.S. same. If OS is different we should run VM.
>     
> 4. No solution for data recovery and backup.
>
