What is Docker and Container? Details explaination with Image!

  • What is Docker?

Docker is a tool and an open platform for developing, shipping, and running applications
Docker enables you to separate your applications from your infrastructure so you can deliver software quickly.
With Docker, you can manage your infrastructure in the same ways you manage your applications.

  • What is Container?

A Docker container is an open source software development platform. Its main benefit is to package applications in containers,
allowing them to be portable to any system running a Linux or Windows operating system (OS).
A Windows machine can run Linux containers by using a virtual machine (VM)

  • Benefit of Docker?
SAVE COST
    - RUNNING APPS IN DATACENTER
SAVE TIME   
    - For running APP
IMP* QUALITY
    - Software Quality
Portability
Once you have tested your containerized application you can deploy it to any other system where Docker is running and you can be sure that your application will perform exactly as it did when you tested it
Performance
Although virtual machines are an alternative to containers, 
the fact that containers do not contain an operating system (whereas virtual machines do) means that containers have much smaller footprints than virtual machines, are faster to create, and quicker to start.

Agility
The portability and performance benefits offered by containers can help you make your development process more agile and responsive. 
Enhancing your continuous integration and continuous delivery processes to take advantage of containers and technology such as Enterprise Developer Build Tools for Windows makes it easier for you to deliver the right software at the right time. Enterprise Developer Build Tools for Windows is a component of Enterprise Developer which provides all of the functionality of Enterprise Developer to enable you to compile, build, and test COBOL code but without the overhead of an IDE.

Isolation
A Docker container that contains one of your applications also includes the relevant versions of any supporting software that your application requires. 
If other Docker containers contain applications that require different versions of the same supporting software, that isn't a problem because the different Docker containers are totally independent of one other.

Scalability
You can quickly create new containers if demand for your applications requires them. 
When using multiple containers you can take advantage of a range of container management options. See the Docker documentation for more information on these options.
  • Docker Architecture

Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers.
The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon.

  • Container lifecycle
Created: A container that has been created but not started
Running: A container running with all its processes
Paused: A container whose processes have been paused
Stopped: A container whose processes have been stopped
Deleted: A container in a dead state
  • How Docker Works!!

Docker images contain all the dependencies needed to execute code inside a container, so containers that move between Docker environments with the same OS work with no changes.
Docker uses resource isolation in the OS kernel to run multiple containers on the same OS.