Interested to learn about docker? You are at the right place!!
What is the problem?
Before directly jumping to docker and its related technical terms, let us first understand what the real problem is.
Suppose you are writing a code/software that has a dependency on GCC compiler version 2(IK it's very old but still). After completing your project, you send it to your friend or the testing environment and they all have the latest systems and latest versions of OS installed with the latest version of GCC compiler, so the probability is that your application won't work as you expected it to work.
Let us look at another example. You are developing a website for an organization. You have divided the website into various microservices. Each of this microservice has specific dependencies. You have the option of running all these microservices on one single OS/WebServer but the problem is, all the dependencies that these microservices are using, are creating confusion and things are breaking. One microservice requires version 1 of dependency X whereas the other microservice is requiring version 2 of the same dependency X . Dependency of microservice A is breaking microservice B. Nothing is going according to what you have decided and now everything is a mess.
To tackle all these problems, Containers were introduced.
Containers
It is a standard unit of software that packages up code and all its dependencies so that the application runs quickly and reliably from one computing environment to another.
In other words, containers allow a developer to package up an application with all parts it needs (dependencies, libraries, etc ) and help to deploy it as one package.
Docker
Docker is a container management system. The entire package made by a developer that we saw earlier, is managed by docker. This includes storing this container(entire package) on the cloud, downloading it, installing main apps and their dependencies, and in the end, running it, these all functions are managed by docker.
It allows applications to use the same Linux kernel as the system that they are running on and only requires applications to be shipped with things not already running on the host computer. This reduces the size of the application significantly and gives a boost to the performance.
That's all the basics about docker. Now in the next blog, we will dive into some advanced concepts of docker. Also, I have planned one series on the topic of Security Analyst so stay tuned :)