Docker or container is a light weight approach to run / deploy multiple environments on a single computer. In past people used VMs for this purpose, however (as you can see in following diagram) VMs are based on hypervisors or emulated virtual hardware which makes it a fat and resource hungry (in terms of compute and memory).
Containers uses the containment features of the linux kernel to easily run and deploy applications with their own environment. Containers share OS and libraries which makes it light weight, highly performant and easy to move and migrate. Docker is one of the many available solutions to create, run and deploy containers. Other common container solutions include CoreOS, Mesos and LXC.
Benefits of Docker
Some of the core benefits of using docker are.
Docker containers share OS and libraries which makes it resource efficient solution, so docker makes application deployment highly preferment .
Docker makes it easy to port and shift your deployment from one physical environment to another (e,g. from Azure to AWS).
Standardization of application deployment
Docker makes it easy to ensure consistency during application development lifecycle.
Once you are done with creation and configuration of your first container, its matter of minutes if not seconds to deploy and run your application on multiple systems, sites or environments.
Docker provides easy and clean isolation for different application environments, one of the simple example of this is use of different / conflicting library versions for two applications running on same physical machine.