A couple of general questions regarding containers

One of the main advantages of containers against VM’s is supposed to be the fact that for containers there´s no need for a Guest OS to run your application

Part of the advantage of containers is that only the operating system is virtualized, not the hardware. Multiple containers running on the same host share one operating system kernel. This makes for much better density and efficiency than VMs. This advantage applies equally to containers running on Windows and on Linux (at least as long as you don’t choose to run containers with Hyper-V, although even those are more efficient than full VMs).

Another basic premise for containers is that they should be very lightweight.

While it’s possible with Linux containers to create images FROM scratch, most images with apps that are not statically compiled are actually based on Linux distributions (like Ubuntu or Debian) with more complete userlands.

When creating Windows containers, you have the option of basing them on the more lightweight nanoserver image which is 358MB, as an alternative to the larger windowsservercore image.

Even using the larger windowsservercore image, building, moving around and running Windows containers is vastly more efficient than doing the same for VMs. Part of the reason for this is that Docker manages layers very efficiently: On any given system where you’re building or running Windows containers, the windowsservercore base layer is only fetched once. Any subsequent images built or pulled to that system simply re-uses that base layer (and any other layers that are shared between containers).