Docker? is it Useful? to Whom?
What is Docker?
Docker is an open source platform for building, deploying, and managing containerized applications.
What is Containerization?
Containerization is the packaging of software code with just the operating system (OS) libraries and dependencies required to run the code to create a single lightweight executable — called a container — that runs consistently on any infrastructure. More portable and resource-efficient than virtual machines (VMs), containers have become the de facto compute units of modern cloud-native applications.
Containerization vs Virtualization?
- Virtualization − Virtualization is the technology that can simulate your physical hardware (such as CPU cores, memory, disk) and represent it as a separate machine. It has its own Guest OS, Kernel, process, drivers, etc. Therefore, it is hardware-level virtualization. Most common technology is “VMware” and “Virtual Box”.
- Containerization − Containerization is “OS-level virtualization”. It doesn’t simulate the entire physical machine. It just simulates the OS of your machine. Therefore, multiple applications can share the same OS kernel. Containers play similar roles as virtual machine but without hardware virtualization. Most common container technology is “Docker”.

Who can leverage Docker?
Docker can be leveraged by anyone who wishes to run any software in containerized environment.
How will that help?
You can have multiple containers each holding different/same version of app, based on your requirement.
For Developer
They can test their app by creating an image of the same and running the same on their machine which would let them know how code will behave in containerized environment.
For Tester
They can leverage images published by Selenium on hub.docker.com to setup selenium grid on their local or remote server.
Testers can even create an image of their code and run the same for isolated test execution.
Example: https://github.com/Arvind142/TestNG-Modular-Automation-Framework
Examples for reference:
I’ve written multiple .sh,docker-compose.yml for running images to run and work with apps without installing them.
Link to Repo: https://github.com/Arvind142/Docker-container-examples
References:
- https://hub.docker.com/ -> Docker hub( where you can find docker images)
- https://www.ibm.com/cloud/learn/containerization -> Containerization