One of my purposes for 2021 is to simplify Docker for beginners.
Let's start with some definitions:
Docker host
Docker engine
Docker client
Dockerfile
Docker Image
Docker Container
Docker Compose
Docker Registry


Docker Swarm
Definitions Below
Let's start with some definitions:











Definitions Below


A computer with Docker installed and the daemon running.
It can process Docker and non-Docker workloads.

A Client-Server application. It has 3 components:
- "daemon process": A server that is a type of long-running program.
- "Rest API": to specify interfaces that programs can use to talk and interact with the daemon.
- "CLI": A command-line interface client

It sends commands to dockerd, using the Docker API.
It can communicate with multiple daemons.

It's a text document that contains all the commands a user could call on the command line to assemble an image.

It's a file, composed of multiple layers, often based on another image, that contains everything you need to run your application.
Containers run on top of existing images.

It's a standard unit of software that packages up code and dependencies, running as a process on the host machine.

It's a tool for defining and running multi-container Docker applications, called services.
You use a YAML file to configure the services, that can be created/started/stopped with a single command.
It works well in development, testing, and production.

It's a stateless server-side application to store Docker images. The images can be pulled or pushed.
It can be public/private.
Docker Hub is a public Docker registry.



It's used to manage multiple machines where Docker is installed.
It allows you to manage multiple containers deployed across multiple host machines (nodes).