petri[.]com/what-is-a-virtual-machine/
Basically an easy to understand primer that's IMHO more easily understandable than something like Wikipedia's article [ wikipedia[.]org/wiki/Virtual_machine ]
My only quibble is IMHO they should have either left Containers out of it or explained them better. In a nutshell... Companies will fire up additional VMs, usually in the cloud, as they need more capacity, & then shut them down as demand decreases. Now firing up a full version of an OS takes time, and the OS itself takes up quite a bit of storage. And that's where containers come in -- they're smaller, lighter, & faster to start up since they only have some of the software that would be needed in a comparable, independent VM. They manage that by using some of the host's resources rather than duplicating everything.