Why Docker (Docker Problem statement)?
When a developer creates a project that works great in the developer machine.
But won't work as expected in the testing department, managers machine, etc., this might not totally work, performance issues, optimization issues, etc.,
For Example: When we create a website using PHP, ASP. NET, etc when this project goes to the webserver like
Images are not loading properly
Maybe the path is a little bit different or glitchy
"IT WORKS ON MY MACHINE" is a classic problem
This problem occurs when the developer machine is installed all the dependencies, But the other machine is not installed.
The Docker is developed to resolve this issue.
It works for almost any programming language or any project.
It is almost a sheet of paper on which we can put anything.
It allows us to have sealed containers and these containers are the heart of docker.
These containers wrap up the entire code and these are portable. We can put this container in any machine and it works seamlessly.
It allows us to create social containers these containers can be shared and can be published on a social platform.
Example: The installation process of MySQL is a challenging task on our system. (And the process varies in Windows, Linux, macOS). So in this case also docker can help us by getting the container of the successfully installed MySQL. If we have the container, it is a matter of seconds to install.
What is Docker?
Docker is software that creates containers. Docker container keeps the code, dependencies, configs, process, Networking, OS(some chunks), and more.
3 Essential things that docker does :
Client-side application program: We can just install the program. it does everything for you including designing a container for you.
Can Act as a service and be deployed onto any server. So that we can take the container and can deploy it on any server we want.
Acts like a social networking platform: You can share the docker image So that anyone can use your image
Features of Docker
- Easy and Faster Configuration
- Increase productivity
- Application Isolation
- Routing Mesh
- Security Management