Docker is a software platform that allows you to build, test, and deploy applications quickly. It does that by packaging software into container images. These container images include everything needed to run the software - libraries, system tools, configuration and application.
A great project to understand Docker is to build an application to pull a container image from Docker Hub, unpack and run it in our own container runtime.
Build your own Docker is available with a project breakdown on Coding Challenges.