This document provides an introduction to Docker. It discusses how containers and Docker address issues around portability and efficiency caused by the "matrix from hell" of virtual machines and different operating systems. Docker allows applications and their dependencies to be packaged into standardized units called containers that are more lightweight than virtual machines. Key benefits of Docker include speed, portability, efficiency, rapid application deployment, version control, and its large community. Some weaknesses are that containers can fail and have weaker isolation than virtual machines. The document provides examples of using Docker for continuous integration, testing, deployment automation, and software packaging.