What is Docker?
A tool that can package software into containers that run reliably in any environment.
Why do you need it?
Say you build an application using a specific version of nodeJS along with many dependencies, one way to share your work with your friends and make sure it behaves the way you intended regardless of the hardware it runs on it, is to run it on a virtual machine.
But unlike VMs, Docker only virtualizes the OS rather than the hardware and runs all of your apps on a single kernel, which makes everything blazing fast and efficient.