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:
Docker host
Docker engine
Docker client
Dockerfile
Docker Image
Docker Container
Docker Compose
Docker Registry

Docker SwarmDefinitions Below
Docker (Active) HostA computer with Docker installed and the daemon running.
It can process Docker and non-Docker workloads.
Docker EngineA 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
Docker ClientIt sends commands to dockerd, using the Docker API.
It can communicate with multiple daemons.
DockerfileIt's a text document that contains all the commands a user could call on the command line to assemble an image.
Docker ImageIt'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.
Docker ContainerIt's a standard unit of software that packages up code and dependencies, running as a process on the host machine.
Docker ComposeIt'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.
Docker registryIt'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.


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