In this tutorial, you will learn about what is Docker and why to use it.
so, let's get started...
In this post, we will cover,
- What is Docker?
- What problems does Docker solve?
- Docker terminologies
- Docker Advantages
What is Docker?
Docker is an open-source platform that enables developers to build, deploy and manage applications in lightweight virtualized environments called containers.
The Docker is written in ‘go language'.
What problems does Docker solve?
Before Docker, many users face the problem that particular Code running the developer's system but not in the User's System
Now suppose developer-A has developed one application and now he wants to share it with developer-B, so he shares the git link for that project, when developer-B tries to access this application he gets several errors due to some different configurations available in his system and the application was build on some other version.
yes it can be solved one by one by updating the version and other stuff, but this process will be too time-consuming, and this scenario will happen every time when a new developer joins, so here docker comes to the rescue.
So, using docker developer-A can build an image for the application and share it with developer-B, then he can easily access the application, that sounds good, right?
Also read, Docker Commands: A Ultimate List
Now let's understand some docker terminologies:
Docker allows users to create independent and isolated environments to launch and deploy its applications. These environments are then called containers.
This will let the developer run a container on any machine.
As you can see, with Docker, there are no more dependency or compilation problems. All you have to do is launch your container and your application will launch immediately.
Basically, the image has some configuration needed to run the app in a container.
Dockerfile Has instructions to run an Application in a container.
- Less Cost and lightweight
- Rapid Deployment
- CI Efficiency, Build App only once
- Image Reusability
- Version Controlling