Docker is a virtualization technology that harnesses the Linux namespaces and cgroups to create an environment where software can be run in a lightweight manner that includes everything that is needed such as cpu, memory, network resources, etc.
Note: If you install Docker onto Windows or Mac, you are actually installing a Linux VM that is running the Docker services. (later versions of Windows are using HyperV for the "native support" I believe)
A Docker registry is a storage and distribution system for named Docker images. The same image might have multiple different versions, identified by their tags. A Docker registry is organized into Docker repositories, where a repository holds all the versions of a specific image. (credit to Aquasec for this description)
Docker Hub is the most popular free way to download as well as upload images - as GitHub is to code, Docker Hub is to Docker images