🏠Docker (Active) Host
A computer with Docker installed and the daemon running.
It can process Docker and non-Docker workloads.
⚙️Docker Engine
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
❓Docker Client
It sends commands to dockerd, using the Docker API.
It can communicate with multiple daemons.
📝Dockerfile
It's a text document that contains all the commands a user could call on the command line to assemble an image.
📑Docker 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.
🐳Docker Container
It's a standard unit of software that packages up code and dependencies, running as a process on the host machine.
🐙Docker Compose
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.
🪣 Docker registry
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.
🐳🐳🐳Docker Swarm
It's used to manage multiple machines where Docker is installed.
It allows you to manage multiple containers deployed across multiple host machines (nodes).