Docker is a set of platform as a service products that uses OS-level virtualisation to deliver software in packages called containers.
Most of you may not able to get a clear overview about Docker only by looking at the above definition about Docker. So, let's discuss about docker using a real world scenario.
As we can understand from the above definition, it clearly describes that there may be some reasons or gaps which may lead any software product which is working perfectly fine in the developer's machine (computer) but, it's not working in the production environment due to some reasons such as;
- Dependancies
- Libraries
- Framework
- OS Level Features
- Microservices
In most cases these kind of features are not supported in the production environment due to some OS level mismatches for some dependancies, libraries or frameworks or missing some libraries or dependancies in the production. Furthermore there could be several OS level features which may differ from one OS to other which may fail the application working properly.
For an example, let's take a software developer who developed a software application and have already tested it in his local machine during the development period and confirmed that the software application is working perfectly fine without any problem.
But however after he deployed the same application in the production environment, he've noticed that the software application is not working properly as expected and not as same as work properly compared to output given by the local machine.
This is one of the most common issue which the developers has to face in the industry. So, that's why we need a more standardised way to package the software application with it's dependancies and deploy it on any environment.
So, in order to perform that task, we may use Docker as a tool to make it easier to create, deploy, and run applications by using containers.
So, Docker is a software platform which allows you to build, test and deploy applications easily. Docker packages software into stanferized units called containers that have the software dependancies (external things which are needed to run the application)such as libraries, system tools, runtime environment etc. Docker'll make ease of the application deployment process and will speed up the deploynent process into any environment with your working code.
What is the Process or the Duty of the Docker?
As we discussed earlier, we already knows that, Docker works by providing a standard way to run our code working as an operatimg system for containers which is failrly similar to how a virtual machine virtualises (Removes the need of being directly manage) server hardware, Docker Containers virtualize the operating system of a server. Docker allows you to manage containers by using commands for build, star, or stop containers on each server where Docker is installed.
Now let's dig in to the internal process which happens inside docker and it's duty as a container. Basically docker packages an application and all it's dependancies in a virtual container that can run on any Linux server.
In Docker, each container runs as an isolated process in the user space and take up less space than regular VMs (Virtual Machines) due to their layered architecture.
0Comments