What is Docker? 

Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers that can run on the cloud or on-premises. Docker is also a company that promotes and evolves this technology, working in collaboration with cloud, Linux, and Windows.


In a container-based approach, the host operating system’s kernel and resources are directly shared by the container through the Docker daemon. This means that the containers are far more lightweight than a virtual machine.




Docker Terminologies 

Container Image

               A package with all the dependencies and information needed to create a container. An image includes all the dependencies, deployment, and execution configurations to be used by a container runtime. An image is immutable once it has been created.


Docker file

            A text file that contains instructions for building a docker image. It is like a script the first line states the base image, to begin with, and then follows the instructions to install required programs, copy files.


Build

            The action of building a container image based on the information and content provided by its Dockerfile, additional files in the folder where the image is built.


Container:

               An Instance of a Docker image. A container represents the execution of a single application, process, or service. It consists of the contents of a docker image, an execution environment, and a standard set of instructions.


Volumes:

            A writable file system that the container can use. Since images are read-only but most programs need to write to the filesystem, volumes add a writable layer, on top of the container image, so the programs have access to the writable file system.


Tag:

               A mark or label you can apply to images so that different images or versions of the same image can be identified.


Repository

               A collection of related Docker images, labeled with a tag that indicates the image version. Some repos contain multiple variants of a specific image, such as images containing SDK, and images containing only runtime. Those variants can be marked with tags. A single repo can contain platform variants, such as a Linux image and a Windows image.


Registry:

               A service that provides access to repositories. The default registry for most public images is Docker Hub. A registry usually contains repositories from multiple teams.


Docker Hub

               A public registry to upload images and work with the team. Docker Hub provides Docker image hosting, public or private registries, build triggers and webhooks, and integration with GitHub.