Docker is a platform for packaging and running applications together with their dependencies as containers. It reduces differences between development and production environments and makes builds and distribution easier to reproduce.