Docker allows building and running applications in isolated containers using system virtualization instead of full hardware virtualization. It provides advantages like building applications once that can run anywhere, fast versioned deploys, and almost no overhead from virtualization. Docker works by loading a container from an image file with instructions for the runtime environment. Images are built using Dockerfiles that define layers for the file system and can derive from other images. Built images are usually pushed to repositories for version control and deployment.