How docker runs windows containers and why the size is big

Docker can now run windows containers on Windows 10 and Windows server 2016 if we install “Docker for windows”. How does it do it?

See image for better clarity

Is it true that every windows image will either have WindowsServer or NanoServer which makes images size in GB. If it needs image of server, is it the case that Docker creates a NanoServer VM on top of existing windows machine? Why can’t it run on current windows OS directly (this way image size will be small not in GB)?

If I run two containers which both contain nanoserver are are of about 3 GB say, then if I run both the containers will it use two instances of nanoserver i.e. 3GB each, is it not making it bulky just like normal VM’s?

Why there is so much size difference in Linux container image which is in MB and windows container images which is in GB? Why linux container images not contain OS as is with Windows container images?

Is windows Server or nanosever a VM?

Thanks