You can run your Docker containers on all major platforms, but Docker on Windows and Mac runs your containers on a Linux VM.
It takes care of mapping volumes, ports etc. from your host machine to containers, so mostly you don't have to think about the VM layer. But you still have configure limits of VM resources (RAM, CPU etc.) and there might be adverse effects on performance.
I don't think you can run Linux-based Docker containers on a Windows machine directly without a VM (not taking WSL into account) as even a simple "hello world" app would use a Linux base image with Linux binaries, which cannot be run on a Windows machine without some kind of emulation or virtualization.