Understanding On Docker
Problem statement before Docker
Before start on docker let’s understand problem statement by taking one example – Developers created an application which is running on their local environment and when they deployed this application to prod then this application doesn’t work because Developer have all the dependencies in local but same doesn’t exist in prod environment. E.g. – Any Java version, different software version, different framework etc.. and because of this issue Ops team and Dev team start to blame each other which could impacts project deadlines and team environment. Docker will help here.
Docker will help to developers and System Admins both. They can make docker part of DevOps process and developer can focus only to write code without worrying about system.
Let’s understand what is Docker
Docker is an open source platform which is design to create, deploy and run applications using containers. Docker does not have own operating system. This is alternative to VM which share host operating system.
What are containers – Containers contains your running application with all required libraries and other dependencies and deploy it as a package. By default, a container is isolated from other containers and its host machine.
Basic components of Dockers are – Docker file, Docker Image & Docker Container
Docker File is a building block which utilize to create docker Image.
Docker Image contains all project code. This image can be utilized to make multiple containers as we want. Images are built on the concept of layers, each layer building upon the layer.
Docker Architecture
Docker follows client server architecture. Architecture divides in 3 parts – Client, Host and Registry.
Docker client is primary way to run commands to interact with dockers
Docker images comes from Docker registries. Registries can be public or private. When we want to bring an image to our machine we would use a Docker Pull command like below
"docker pull YourImagePath"
Docker Daemon - Docker Daemon manage docker objects like Networks, Containers, images etc by listening docker API request.
At last, I would say docker makes life easy for developers, Ops team and System Admins. Docker save time and help to deliver your project fast without any dependency hiccups. I have used docker first time with my sitecore project and found very useful for team.
Good article!
Simple and precise explanation. Good job 👍🏻