As a team, we were working on an important application and had a deadline to meet. However, one of our team members experienced a setback when their computer crashed and failed to start. As a result, we had to reinstall and set up everything on another machine, which took almost 10 hours.
Unfortunately, after a few hours of work on the new machine, it also crashed, which was a major setback for us. It was clear that we couldn't afford to waste more time on these repetitive tasks for new machines.
To overcome this issue, we decided to find a permanent solution. We brainstormed and came up with a plan to create a virtual machine in docker that contained all the necessary installations, configurations, and software required for the project. This virtual machine would be easily replicable and could be used by any team member, regardless of their personal machine setup.
After a few days of hard work, we successfully created the virtual machine, which was a game-changer for our team. The process of setting up new machines for our project was now simplified and streamlined, saving us countless hours of work and preventing any more setbacks caused by crashes or system failures.
In conclusion, the setback we faced due to the machine crashes ended up being a valuable lesson for us. It taught us the importance of being proactive and finding solutions to potential problems. Our new virtual machine solution not only saved us time and effort but also improved our overall workflow and productivity.
Docker has image for everything you need: application server, frameworks, operating systems etc.
You just need to download your required image from hub.docker.com, and you are ready to run that image with little to no configurations.
In our case we downloaded a docker image for an O.S.; installed all the tools we needed and committed changes to docker custom image. Now every time we setup a new pc, we install the docker tool and run that custom image, and we are ready to use app.
No, it is life saving for DevOps team too. Docker provide a virtual runtime that is not coupled with Host operating system. If a code was running on Developer's machine, it is now guarented to run on production server. Application can be easily moved to different O.S. or host provider with minimal effort.
The advantage of Docker is to build the package and run the application in sandbox environment said Container. The docker container system utilizes the operating system virtualization to use and combine the components of an application system which support every standard Linux machine. The isolation and security factors allow us to execute many containers parallel on a given system. Containers are lightweight in size because they don’t need the extra resource of a HyperV or VMware, but run directly within the machine kernel. We can even run Docker containers within machines that are actually virtual/hyper machines. Docker uses a client-server based architecture model. The Docker client communicates with the Docker daemon, which does process the lifting of the building, running, and distributing Docker containers. We can connect a Docker client to another remote Docker daemon. The Docker client and daemon communicate using of REST API and network interface.