This document provides an introduction and overview of Docker. It discusses the motivation for using Docker, which includes only needing to build an app once and getting consistency between testing and production environments. It then provides instructions for installing Docker on different operating systems. Several Docker concepts and terms are defined, like images, containers, the Docker engine, Docker Hub, repositories, and more. Basic Docker commands are listed and explained. The Dockerfile is introduced as a way to build images. Key Dockerfile commands are defined. Docker Compose is presented as a tool to run complex multi-container apps with one command. Common Docker commands are provided at the end.