Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly.
Virtualization means each virtual machine has its own hypervisor. With containerization, either Docker is used to deploy an individual container, or Kubernetes is used to orchestrate multiple containers across multiple systems.
Virtualization enables you to run multiple operating systems on the hardware of a single physical server, while containerization enables you to deploy multiple applications using the same operating system on a single virtual machine or server.
Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers. The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon.
It is a file, comprised of multiple layers, used to execute code in a Docker container. They are a set of instructions used to create docker containers.
It is a runtime instance of an image. Allows developers to package applications with all parts needed such as libraries and other dependencies.
It is a text document that contains necessary commands which on execution helps assemble a Docker Image. Docker image is created using a Docker file.
The software that hosts the containers is named Docker Engine.
Docker Engine is a client-server based application,
The docker engine has 3 main components:
Docker Hub is the official online repository where you can find other Docker Images that are available for use. It makes it easy to find, manage, and share container images with others.
More details about the topics we covered can be found from the following web sites.
https://www.sdxcentral.com/cloud/containers/definitions/containers-vs-vms/
https://blog.knoldus.com/docker-architecture/