Docker is process virtualization.
Docker is a program that allows users to easily run other programs. It does so by providing a unique environment to the program. By doing so, the program "thinks" that it is the only program running on your computer. The program is isolated from other programs and has dedicated resources. It can see a hard disk that only it can use. The same goes with other resources (network etc).
Programs packaged with docker are guaranteed to work on other computers simply because docker is installed. Docker guarantees that the environment on computer #2 is the same as the environment on computer #1.
It is commonly used for software development as well as production deployments as it allows for identical environments.