DOCKER
What is Docker?
- It is an open source containerization Platform.
- It is used to automate the deployment of any application.
What is Container?
- Running instance of an image.
- Containers are deployed applications bundled with all necessary dependencies and configuration files.
- All the elements share the same OS kernel.
- It is an abstraction at the app layer that packages code and dependencies together.
- Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space.
What is Virtualization?
- It is an abstract version of a physical machine.
- Hypervisor allows multiple VMs to run on a single machine.
- Each VM includes a full copy of an OS, application and necessary binaries and libraries which takes size in GBs.
- It can be slow to boot.
Comparison between VM and containers.
- Run Containers in seconds instead of minutes.
- Less resources results less disk space.
- Uses less memory.
- It does not need full OS.
- Deployment and Testing is easy.
3 Main Docker Components
- Docker Client :- Performs docker build pull and run operations to open up communications with the docker host. The Docker command then employs Docker API to call any queries to run.
- Docker Host:- Contains docker daemon, containers and associated images. The Docker daemon establishes a connection with the registry. The stored images are the type of metadata dedicated to containerized applications.
- Registry:- This is where docker images are stored. There are two of them a public registry and a private one. Docker Hub and Docker cloud are two public registries available for use by anyone.