- VMs run an entire OS on top of hypervisor and emulating hardware
- Containers are running on the OS level. They share the host kernel but isolate processes
#Docker relies in the Linux Kernel to run on different operating systems. On windows, it is usually ran within the Linux subsystem. On MacOS, also a Linux VM is used to run Docker containers on top.
Thus, on Windows and Mac Docker in fact runs in a VM somehow, but when deploying on a Linux machine, this is not the case.