Docker is an opensource platform for developers and sysadmins to build, ship, and run distributed applications based on Linux containers. It is basically a container engine which uses Linux Kernel features such as namespaces and control groups to create containers on top of an operating system and automate application deployment on the container. It provides a light weight environment to run the application code. The Containers allow users 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. Docker makes sure that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.
a) An isolated, rapid framework.
b) An opensource solution
c) Cross Cloud infrastructure
d) Moderate CPU/memory overhead
e) Fast Reboot
Docker is made up of below major components
a) Docker Daemon
Docker daemon runs on a host machine. A docker user can not directly interact with the daemon as the daemon needs the docker client in order to interact.
b) Docker Client
It is the primary user interface to Docker which helps users to interact with the Docker Daemon. It processes the commands from the user and communicates back and forth with a Docker daemon.
c) Docker Images
These are ready-only templates that help launch Docker containers. A docker image can be of CentOS operating system with Apache and your web application installed. These images are used to create the docker containers. Docker allows to build new images or you can simply edit and update the images.
d) Docker Registries
Docker Registries holds the docker images. These registries are either public or private stores from where you upload or download images. The public docker registry provides a huge collection of existing images for use so its also called Docker Hub. You can easily edit and update the images as per your requirements and can upload them to Docker registries.
e) Docker containers
Each docker container is an isolated & secured application platform which holds everything that is needed for an application to run. You can perform run, start , stop, migration and delete operations on a docker container.