This article will covers what is Docker, what is Docker-Containers, why we need Docker-Containers, what are the components of Docker-Containers.
Let’s start with,
What is Docker ?
Actually, Docker is the name of a company which gives us platform as a service (PaaS) and using this platform OS level virtualization is possible to deliver consistent softwares, applications fast, error free and cost effectively. Docker was founded by Solomon Hykey in 2010.
What is Docker Container?
In simple terms Containers are nothing but it is like a virtual machines but not exactly virtual machine. It is a standard unit of software that packages up code and all its dependencies so that your application run quickly and reliably from one computing environment to another. Docker-Container runs on docker-engine. Containers share the host machine OS system kernel and not required separate OS per application and because of this Docker containers driving higher server efficiencies and reducing server and licensing costs.
Why we need Docker-Container?
If we think about vitalized or cloud machines it has entire operating system installed on each machines and this VMs, or cloud machines are very heavy, larger in a size and have many issues to share the environments while we are doing softwares development process.
So, here Docker-Containers comes in picture. Docker-container works a little like VMs, but more specific and granular ways. Containers are isolated from each others and induces single applications and its dependencies. While creating docker containers all of the required external softwares can be shared from base or host machine. Docker has their own library which is hub.docker.com/ and can be pulled required softwares and images from there. Once you created docker container for developer and developers are ready with their codes they can create a image of their containers and share to other team members and the same image can be use.
So, in short Docker-Containers are very lightweight, can be shared easily, fast, not required to install entire operating system each time and due to all of this Docker-Containers required very less resources. So, its cost effective.
Docker engine is the client-server application, it is the actual tool which used to build, manage containerization. It has three major components;
Server: A server is a type of long running program and its called daemon process.
A REST API: It specifies interfaces that program can be use to talk to the daemon and instruct it what to do
CLI: Its is command line interface using this we can manage perform docker commands.
Docker client is nothing but its a machine from where you are communicating with Docker-Engine. DevOps professional could be connect to remote docker engine through shell and docker engine could be runs on the same machine.
In a simple way I would say Docker images are read only templates of the docker containers. You can transfer/share this images to others and when this runs it became a Docker-Container.
Docker hub is a place from where you can get softwares Docker-Images downloaded. It is free and open sourced platform. Developers can uploads, download and contribute. Docker-Hub have their free and enterprise platforms.
Hope, you got some idea about Terraform. Please like, share and subscribe to https://devopsarticle.com