Docker allows developers to easily deploy applications in lightweight sandbox containers that run on the host operating system. Containers package an application and its dependencies into a standardized unit, and have less overhead than virtual machines. Docker images are read-only templates used to create container instances that can be run, started, stopped, moved and deleted. Images are stored in Docker registries, while containers are isolated and secured instances created from images. Docker tools like the client, machine, and compose help manage images, machines, and multi-container applications.