Docker running Windows applications
I understand Docker to be a containerization tool, with a limited set of APIs so as to be platform agnostic. I am trying to understand what limitations it places on typical Windows development. For example, does it limit access only to write to a file system (and therefore rules out applications that write to the registry)? Is there a level of complexity where Dock is not suitable (but then again I heard that MSSQL will be supported on docker)?
One Solution collect form web for “Docker running Windows applications”
This question is really broad, and hard to answer definitively, but a few specific points in it can be addressed.
I understand Docker to be a containerization tool, with a limited set of APIs so as to be platform agnostic.
It’s platform agnostic in a sense that you could run a container on CentOS, Ubuntu, or any other Linux distribution, but you can’t run a Linux container on Windows natively, or a Windows container on Linux natively. Introducing Docker for Windows Server 2016 is a good place to start with information regarding Windows containers.
For example, does it limit access only to write to a file system (and therefore rules out applications that write to the registry)?
Based on this MSDN FAQ, no (emphasis mine)
Windows Server Containers are a lightweight operating system virtualization method used to separate applications or services from other services running on the same container host. To enable this, each container has its own view of the operating system, processes, file system, registry, and IP addresses.
For example, dockerfile for SQL Server Express image modifies the registry.
Is there a level of complexity where Dock is not suitable
The question isn’t about complexity but about availability of APIs. This is also from the above mentioned Docker for Windows Server 2016
With the exception of GUI apps and apps requiring Windows Remote Desktop, most apps that run on Windows Server can be dockerized to run in an image based on microsoft/windowsservercore with minimal effort.