After reading this blog, I promise you that the concept of docker will be absolutely clear to you, and by the end of the blog. So let’s start talking about what docker is. On every occasion a product is being designed, the first and the best intention with that product is “I want to solve a specific problem” or “by hook or by crook I want to reduce the friction that users are currently going through in that difficult”. So to understand docker, first and foremost we need to understand what is the problem assertion that docker is trying to clear up.
Problem Statement
Whenever a developer develops any product, certain issues probably almost every time occurs. Well, the problem is, whenever you are designing a project, it works fine on your machine, the developer’s machine. But as soon as that project is moved on to the production stage, maybe on to servers or maybe somebody’s else computer, maybe your friend’s or maybe your team manager’s computer, in that case, the project usually fails to work with the same performance or same optimization or the same level of working even when that project is moved from one place to another place. Although here we are talking about big-scale projects that include something like Node, Django, Python, JavaScript, and all those kinds of stuff. But just to give you a bare minimum basic example, whenever you develop any website using PHP you work on that project and move that project onto the web server. Some uncertainties occur. Maybe your images aren’t loading correctly or maybe the path is a little different. That is a classic example of when everything works on the developer machine but as soon as it moves to another place, it doesn’t work like that. So the classic problem is “it works on my machine”.
Docker
This further brings up the classic debate from our developer who says it works perfectly fine on my computer, you can come to check it out. When loading this project into a production or other machine, the other guy says, “Hey, you probably forgot to mention some dependencies you might have installed while working on other projects, and that’s why you’re having a problem”.
So this debate is pretty disgusting! Docker is designed to solve exactly this problem, “it works on my machine”. First and foremost, docker is a completely different thing and is compatible with almost any programming language or any project you’re working on. Docker allows you to have a closed airtight container and these containers are the absolute heart of docker. These containers wrap all your code and are portable. Portability is one of the absolute charms of docker. Docker allows you to have a sealed airtight container and these containers are the absolute heart of the docker. These containers wrap up your entire code and these are portable. Portability is one of the absolute allures of docker. Now we can take this container and wherever you are going to put this container, it’s going to work absolutely and exactly like how it worked on your machine. Not only that, but docker also allows you to have social containers. This means that containers are shared just like your social status on your Instagram or Facebook. It lets you publish these packing containers on a social platform. So Docker is the software that allows you to create these containers, and these containers are not just any containers. They are super powerful and are super packed up and consist of a lot of things.
Summary
These containers are packed up with your code, your dependencies, and your configuration. Some of the processes that you are running, some of the networking info that you are running, and in some of the exceptional cases it also contains chunks of some of the operating system that is responsible for tweaking out some things in your code. So to summarize, we can divide this docker into three main essential things that it does for us.
1. Client-side application program. You can just install the docker and it can do all the things for you including designing a container for you. You don’t have to worry about anything, all your codes and configurations will be packaged and you can move them anywhere you want.
2. Docker can also act as a service and can be deployed on any server. This means you can take your container and can deploy it in any place you like.
3. Docker also acts as a social networking platform just like you share anything. You can share your docker image so that whenever somebody wants to start at a given specific checkpoint, it can start there.
And last but not the least, docker is also a company that does and manages all of this for you.
In case you are interested to learn more about docker let me know in the comment section and I’ll prepare some tutorials on the docker that will get used quickly up and running with the docker. In case you have not followed me yet, please do.
Till then, take care!