Docker allows you to package an application with all of its dependencies into a standardized unit for software development.
Containers run exactly the same way regardless of the environment, eliminating the 'it works on my machine' problem.