Docker is container management software. It bundles all of the relevant software together with your application so that it can be run successfully on other machines.
The image is the blueprint of the container. The instructions for building the container. It made up of layers.
A container is a ready to roll copy of an application. It is a running instance of a docker image.
A virtual machine has a complete operating system on it. A container does have an operating system.
Where a virtual machine virtualizes the hardware, a container virtualizes the operating system.
Article incomplete, will come back to this