Docker allows developers to package applications and dependencies into standardized units called containers that can run on any Linux host. Containers are created from Docker images, which are blueprints that define what is in the container. The Docker daemon manages building, running, and distributing containers, while the Docker client allows users to interact with the daemon. Docker Hub is a registry for Docker images, and containers provide benefits like standardization, portability across clouds, and easier management of microservice architectures.