This document provides an overview of Docker including: - Docker allows building applications once and deploying them anywhere reliably through containers that provide resource isolation. - Key Docker components include images, resource isolation using cgroups and namespaces, filesystem isolation using layers, and networking capabilities. - Under the hood, Docker utilizes cgroups for resource accounting, namespaces for isolation, security features like capabilities and AppArmor, and UnionFS for the layered filesystem. - The Docker codebase includes components for the daemon, API, image and container management, networking, and integration testing. Commonly used packages include libcontainer for namespaces and cgroups and packages for security, mounting, and networking.