@Vipin Viswanathan Apologies for the delay in response and all the inconvenience caused because of the issue.
A container virtualises the underlying OS and causes the containerised app to perceive that it has the OS—including CPU, memory, file storage and network connections—all to itself. Because the differences in underlying OS and infrastructure are abstracted, as long as the base image is consistent, the container can be deployed and run anywhere. For developers, this is incredibly attractive.
Since containers share the host OS, they do not need to boot an OS or load libraries. This enables containers to be much more efficient and lightweight. Containerised applications can start in seconds and many more instances of the application can fit onto the machine as compared to a VM scenario. The shared OS approach has the added benefit of reduced overhead when it comes to maintenance, such as patching and updates.
Though containers are portable, they are constrained to the operating system they are defined for. For example, a container for Linux cannot run on Windows and vice versa.
Same has been mentioned here and this is as per your understanding which you mentioned in your query.
You can refer to below articles for more information around switching between Linux and Windows containers:
https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers
https://www.docker.com/blog/preview-linux-containers-on-windows/
Hope it helps!!!
Please "Accept as Answer" if it helped so it can help others in community looking for help on similar topics.