Docker is a container platform. Multiple containerized applications could be run by docker.
Docker is such a tool(or engine) which ensures hassle-free functioning of the containerized applications by enabling them to be run or deployed on any machine having docker installed.
Developer creates Docker File.
Docker File acts as recipe guiding how to create the docker image, specifies about the dependencies, describes steps to create docker image, etc.
Docker Image is created based on the instruction in the docker file. The image can either be run on the same machine to create a container or be pushed into docker hub.
Docker Hub is a hub of images, to/from which images could be pushed/pulled and run those images on machine in which docker is installed to create containers.
Containers are the running instances of docker image. Running container means running application flawlessly with all the dependencies.