This document discusses Docker, an open source containerization platform. It allows applications to run regardless of how they were created or their dependencies by packaging code and dependencies together. This solves issues of applications working differently in different environments. Docker uses containers, which are lightweight and isolated from each other, sharing the same operating system kernel. Containers improve resource utilization and allow running multiple applications simultaneously reliably. Docker images are used as templates to launch containers from and can be built from base images with custom code added via Dockerfiles for reproducible builds.