Docker Terminologies
Tags: docker, microservices, devops, cloudnative
Published: 2022-10-15 06:41:02

There's a good chance your first attempt at learning or using a new technology will be tough. This could happen if you’re not familiar with most terms or concepts. Technology such as Docker is an example of this. If you're new to it, its terms may seem confusing.

For instance, if I were to explain Docker and containers to you, I would say: "Docker is a containerization platform that enables developers to create, deploy, and run applications in containers." "A container is a virtual environment that contains all the files and dependencies an application needs to run." 

In the explanations, terms such as "containerization," "containers," "virtual environment," and "dependencies" might make it difficult for a new user to understand.

Because of this, it's helpful to understand some essential Docker terms if you're a new user. Your understanding of these terms will help reduce the time spent learning Docker. This blog post will cover some of the most frequently used Docker terminologies.

# Docker Terminologies 
Every technology has its terms and concepts that are peculiar and Docker is not an exception. Docker has its own set of terminologies that are used by its users. We'll take a look at some of these terms in this part of the blog post. 

The following are some Docker terms:

### Docker Host 
A Docker host is a computer on which Docker Desktop runs. It is a physical machine just like your laptop or a virtual machine. You need a Docker host to run Docker containers. All containers on the host machine share the same portion of the host kernel, which, therefore, makes all containers run in isolation from each other. 

### Docker Desktop 
Docker Desktop is a Docker development environment. It is available for [Mac](https://docs.docker.com/glossary/#docker-desktop-for-mac), [Windows](https://docs.docker.com/glossary/#docker-desktop-for-windows), and [Linux platforms](https://docs.docker.com/glossary/#docker-desktop-for-linux). Docker Desktop includes Docker Engine, Docker CLI client, Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper. 

### Docker client
The Docker Client is the command line interface that you use to interact with Docker. It communicates with the Docker daemon via a REST API.  This communication is carried out on your terminal via your operating system. It sends requests through commands such as “pull”, “create”, and “stop” to `dockerd` which responds in return. Docker Client can interact with Docker daemon available on a physical or virtual machine.

### Docker Daemon
The Docker daemon is installed along with the Docker desktop. It is responsible for the building, running, and distributing of Docker containers. Docker demon consistently listens for API  requests from the Docker client to respond to. It manages Docker objects such as networks, storage, containers, and images. 

### Docker image
A Docker image is an immutable (cannot be changed) file that includes everything needed to run an application. It is an instance or snapshot of a Docker container that can be used to create new containers. Docker images can be hosted as files on a private or public registry, such as Docker Hub.  Typically, an image is made up of several layers - the base layer and a layer of dependencies. Docker  Images are created using a Dockerfile. 

### Dockerfile
A Dockerfile is a text file that contains instructions for building a Docker image. These instructions are written in a language called YAML, which stands for Yet Another Markup Language. It contains all the commands that can be used to create a container. A Dockerfile is a text file that contains all the commands needed to build a Docker image.


### Docker Compose
Docker Compose is a tool for defining and running multi-container Docker applications.  With Docker Compose, you can specify the services and configurations in a single YAML file that your application requires to run. Using Docker Compose you can easily spin everything up or down with a single command.

### [Docker Swarm Mode](https://dockerswarm.rocks/)
Docker Swarm mode is a tool for orchestrating and managing Docker containers. It is integrated with Docker, so no additional installation is required. 

### [DockerHub ](https://hub.docker.com/)
This is a repository for Docker images. It is a cloud-based service that allows you to push and pull images. It is also a great place to find ready-made images for your applications. 

### Docker Volumes 
These are used to persist data generated by a container. Volumes are stored on the Docker host and are not part of the container image.


### Docker Server 
Docker server is the heart of the Docker platform. It is responsible for managing and running Docker containers.

### Local Deployment
This is the process of installing and running an application on a local machine. In relation to Docker, it refers to the process of installing and running Docker locally.

### Production: 
The process of installing and running an application in an environment that is used by end users. 
Production deployments are used for live applications.

### Docker Network
This is a type of network that is created by the Docker daemon and used by containers to communicate with each other. 

### Orchestrator
An orchestrator is a tool or software that is used to manage a group of Docker containers. Two popular ones are Docker Swarm and Kubernetes.

### Cluster
A group of machines that are used to run containers.

### Namespace
A way to divide a cluster into multiple virtual clusters.

### Service
A service is a group of containers that share the same image and provide the same functionality. Services are typically used to deploy and scale applications.

### Repository
A repository is a collection of Docker images. Docker Hub is a popular repository that offers a wide variety of images.

### Tag
A tag is a label that is applied to a Docker image. Tags are used to identify images and can be used to specify versions or variants of an image

### Build 
This is the process of creating a Docker image from a Dockerfile. 

# conclusion
The blog post explained some Docker terms commonly used. Additionally,