Docker allows building and running applications in isolated containers. It provides a way to package applications with all their dependencies and ship them as standardized units called containers. Containers are more lightweight than virtual machines and allow applications to run anywhere regardless of the underlying infrastructure. Docker uses containerization at the operating system-level rather than hardware virtualization to deliver software in packages called containers. This allows applications to be easily deployed and scaled across computing infrastructure.