7

As my team's microservice architecture grows, as does the pain of manually deploying each individual service in the application. I've played with Docker before and am now learning to leverage the power of building images with CI, docker-compose, etc., but am overall very new to it.

Question: is Docker only able to be production hosted in a linux environment, or can it be hosted on Windows as well?

To be clear, I'm aware of Docker Desktop for Windows / Mac, but my understanding is that it for a development and not production.

2 Answers2

3

Microsoft seems to be committed to container support but you would be a little bit on the fringe. Here's their official documentation for Docker support.

One thing that might help you as well is to understand that the term 'Docker' has come to be used with respect to a whole ecosystem and not everyone really means 'Docker' (the build tool, the runtimes, the company) when they say 'Docker'. The Open Container Initiative (of which MS is a member) is driving the standards. OCI is largely based on Docker so the distinction is pretty subtle. The point is not to be pedantic but it might help you get a handle on things.

Personally, I think you'll have a better experience with Linux as your host operating system but if you really must run in Windows, it seems possible at this point.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
JimmyJames
  • 24,682
  • 2
  • 50
  • 92
  • 2
    Agreed that Linux is currently the state of the art with respect to containerization. Windows is gaining traction here, and will continue to do so, but you are a little more on the bleeding edge here. One argument for Windows? If your infrastructure support teams are deep in Windows and not Linux supporting the environment could be easier. One argument against? Cost. – WaitingForGuacamole Feb 19 '21 at 14:51
1

You can use Docker EE for Windows Server, you can even use both Windows and Linux images on Windows Server 2019 by enabling some features. However there are some issues regarding networking as Windows has its own way to handle network.

You won't be able to create bridges easily to connect 2 containers between them. And you'll have some issues when restarting your server or Docker if you install upgrades.

For us we had to use Docker EE on Windows Server 2019 because we needed .NET Framework, but whenever we have a chance we make Linux images. If you can avoid using Docker EE on Windows I would strongly suggest you to use Linux as your production environment. More documentation and less issues.

mwryl
  • 145
  • 5