A virtual machine(VM) is a representation of an entire computer including hardware such that it can be run under another operating system but entirely separately.
Vagrant is a means of managing development environments. In the vast majority of situations this is a virtual machine, but in theory, could be a Docker container.
A docker container is an isolated environment that can run under an operating system. It is not a representation of a machine (and its associated hardware), rather it’s a means of packaging applications so that they can be run wherever the right operating system is available (e.g Linux, Windows) and are (by default) not connected to anything else running on that OS. If you want to learn about Docker with a valuable certificate then you must take up the following Docker Training Course. I am also mentioning a video tutorial which you must watch to learn all the basics about Docker. .