What is Docker?
Docker is an open source platform for developers and system administrators to build, ship, and run distributed applications based on Linux containers.
At its core, Docker is basically a container engine which uses Linux Kernel features such as namespaces and control groups. This allows it to create containers on top of an operating system and automate application deployment on the containers.
In addition to providing a light weight environment to run the application code, the use of containers allow users to package up an application with all of the parts it needs to operate correctly. By including libraries and other dependencies, applications can be transferred from one machine to be easily run on another.
Because Docker makes use of the Linux kernel housed on the machine it’s running on, regardless of any differences or customized settings, so long as any non-native elements are included within the package, your applications will run on any Linux machine. This means developers are more able to focus on coding without having to build around a specific system.
What are Docker’s Features?
The following is a list features that make Docker unique:
a) An isolated, rapid framework.
b) An open source solution
c) Cross cloud infrastructure
d) Moderate CPU/memory overhead
e) Fast reboot
Docker is made up of the following major components:
1) Docker Daemon
The Docker daemon is a service that runs on a host machine and acts as the brains of the system. A user can’t directly interact with the daemon. By entering commands into the Docker client, these commands are translated and sent over to the daemon to execute them.
2) Docker Client
Docker client is the primary user interface which helps users interact with the Docker daemon. It processes the commands from the user and communicates back and forth with the daemon in order to execute those commands.
3) Docker Images
These are read-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 then used to create the Docker containers. Docker allows users to build new images or you can simply edit and update the images.
4) Docker Registries
Docker registries hold the Docker images. These registries are either public or private stores where you upload or download images. The public Docker registry, also called Docker Hub, provides a huge collection of existing images for use. You can easily edit and update the images as per your requirements and can upload them to other registries.
5) 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.