Components of Docker and its Brief Summary?
It is the world’s leading software container technology which is used for creating and managing containers.
Docker is an open platform, once we build a docker container, we can run it anywhere, say it windows, Linux, mac whether on a laptop, data center, or in the cloud.
The whole idea of docker is for developers to easily develop applications, ship them into containers which can then be deployed anywhere.
The Docker components are divided into two categories;
a)Basic b) Advanced
1) Docker client: Whenever we are using docker commands, the client sends the commands to dockerd, which carries them out. The docker command uses the Docker API. Then the docker can communicate with more than one daemon.
2)Docker image: Docker Image is a file that contains all the necessary dependency and configurations which are required to run an application: code, runtime, system tools, system libraries and settings.
3)Docker Daemon : It will listens the docker API requests and manages docker objects such as images, containers, networks, and volumes. A daemon can also communicate with other daemons to manage Docker services.
4)Docker Networking: Docker takes care of the networking aspects so that containers can communicate with other containers and also with the Docker Host. Docker networking subsystem is pluggable, using drivers. There are several drivers available by default and provides core networking functionality.
5)Docker registry: A Docker registry stores Docker images. Docker Hub is a public registry that anyone can use, and Docker is configured to look for images on Docker Hub by default. You can even run your own private registry.
When you use the docker pull or docker run commands, the required images are pulled from your configured registry. When you use the docker push command, your image is pushed to your configured registry.
6)Docker container: These are the live running instances of Docker images. And it is isolated environment where we can run application and its libraries and dependencies.
1)Docker Compose: Sometimes you want to run multiple containers but as a single service. This task can be accomplished with the help of Docker compose as it is specifically designed for this goal. It follows the principle of isolation between the containers but also lets the containers interact with each other. The Docker compose environments are also written using YAML.
2)Docker swarm: Docker Swarm is a container orchestration tool that is natively supported by Docker. A node is an instance of the Docker engine participating in the swarm. To deploy your application to a swarm, you submit a service definition to a manager node. The manager node dispatches units of work called tasks to worker nodes.