Table of contents
Docker is an open-source centralized platform designed to create, deploy and run applications. Docker is a set of PaaS(Platform as a service).
A Docker container is like a VM(Virtual Machine), rather it is an advanced version of a VM and it works in containerization. Resource allocation in docker is not fixed like that in VM which means it allocates resources according to demand and does not have an OS of itself but rather uses the OS of the host machine.
Advantages
No pre-allocation of ram is required.
Containers are lightweight
Less cost compares to others.
Continuous Integration- it enables to build of a container image and then using that image across every step of the deployment process where ever needed.
Disadvantages
Docker is not a good solution for applications that require a rich GUI(Graphical User Interface)
Difficult to manage large amounts of containers.
Does not support cross-platform work for example developer built the image on windows and the tester is trying to run it on Linux.
There is no solution for data recovery and backup.
Docker Ecosystem
Docker Daemon
Runs on the host OS, responsible for the running container to managing docker services. It can communicate with other daemons.
Docker Client
Docker users can interact with users through a client. The Docker client uses commands and REST APIs to communicate with the docker daemon.
Docker Host
Provide the environment to execute and run applications. Contains docker daemon, images, containers, networks & storage.
Docker Hub/Registry
Manages and stores the docker images. It is of two types
- Public 2) Private
Docker Images
They are read-only binary templates used to create docker containers.