Docker - Home
What is Docker?
In simple terms, Docker is a program that simplifies the process of creating, managing, and distributing applications. It does this by enabling all computer operating systems to download and run any program with ease and without much configuration.
Docker uses a
containerto connect to a computer's operating system to execute programs. It allows applications to use the sameLinux kernelas asystembuilt into a computer, rather than creating an entirevirtual operating system.Docker was created by
Kamel Founadi,Solomon HykesandSebastien Pahland uses theGolang Programming Language. Docker has been around for 10 years now, as of March 20, 2013.Docker integrates with many components such as Docker client, Docker server, Docker machine, Docker hub, Docker composes, etc.
What is a Docker Container?
- Docker Container is a 
lightweight virtual machine. It allows developers to package software that includes all thelibrariesanddependenciesassociated with the application, and ship it individually as a package. 

- The advantage of using a 
docker containeris that you do not need to allocateRAManddiskspace to execute any program, it will automatically generate storage and space according to the requirements of the program. 
What is a Virtual Machine?
- Virtual Machine is a program that allows us to download and use different operating systems (
Windows,Linux, andDebian) at the same time on our machine. The operating system on which thevirtual machineis running is calledvirtualized operating systems. All of these Virtualized Operating Systems are able to execute applications and perform tasks like real operating systems. 

Containers Vs. Virtual Machine
| Container | Virtual Machine | 
|---|---|
| Integration in a container is faster and cheap. | Integration in virtual is slow and costly. | 
| No wastage of memory. | Wastage of memory. | 
| It uses the same kernel, but different distribution. | It uses multiple independent operating systems. | 
Why use Docker?

- Docker is designed to benefit both the Developer and System Administrator. There are the following reasons to use Docker:
- Docker allows us to easily install and run 
softwarewithout worrying about setup ordependencies. - Developers use Docker to eliminate machine problems, that is, when we run programs on Docker, it is lighterweight than running programs directly.
 - Operators use Docker to run and manage apps in isolated 
containersfor better compute density. - Enterprises use Docker to securely built agile 
software delivery pipelinesto ship new application features faster and more securely. 
 - Docker allows us to easily install and run 
 
Advantages of Docker
- The advantages of Docker are as follows:
- It uses less 
memory. - It provides 
lightweight virtualization. - It does not a require full operating system to run applications.
 - It allows you to use a 
remote repositoryto share yourcontainerwith others. 
 - It uses less 
 
Disadvantages of Docker
- The disadvantages of Docker are as follows:
- It increases complexity due to an additional layer.
 - In Docker, it is difficult to manage large amount of 
containers. - Some features such as 
container self-registration,containers self-inspects, copying files formhostto thecontainer, and more are missing in theDocker. - Docker is not a good solution for applications that require 
rich graphical interface. 
 
Docker Engine
- It is a 
client server applicationthat contains the following major components:- A 
serverwhich is a type of long-running program called adaemon process. - The 
REST APIis used to specify interfaces that programs can use to talk to thedaemonand instruct it what to do. - The 
clienthas acommand line interfacefor submitting commands to theserver. 
 - A 
 
