Docker: Why use Linux containers on Windows

dockerdocker-desktopdocker-for-windows

I am using Win 10 Pro N (Version 1709) as a development machine and Windows Server 2016 Standard (Version 1607) as production server.

I am currently developing an ASP.NET Core 2 application with MongoDb as database.

A couple days ago I first stumbled over the idea, to run MongoDb as a Docker image.

I don't have any experience with Docker so far, but I managed to switch from Linux containers (default) to Windows containers on Windows machines.

Was this a good decision? Or is there any reason why I should use Linux containers instead of Windows containers in my scenario?

What e.g. if I should decide to deploy my application to a Linux server some time? In this case, would it wiser to start with Linux containers right from the beginning?

Best Answer

Docker is not about virtualization but more about isolation.

A windows container will run on a windows host

A linux container will run on a linux host

Then some people wanted to run linux container on windows

  • First you needed to create a linux vm on windows to run the container
  • Now you can use LinuxKit to run the container but it's still a light VM

Then some people wanted to run windows container on linux

  • First you needed to create a windows vm on linux to run the container
  • Now you can use nothing more as of today

So the best bet is to start with a container aimed at your production servers