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)?

  • Symbolic Link Host to Docker Container
  • How to dynamically change the docker's base image
  • How to make my docker run on a specified linux kernel version?
  • Not able to connect to network inside docker container
  • Connect to database from another docker container
  • Docker mount namespace
  • Start Solr cloud on Docker Swarm (1.12) without Zookeeper
  • docker - build fails when COPYing file to root
  • Docker with two web application containers
  • Use a configuration file from the host when building a Docker image
  • Connecting to remote activemq instance running on docker container
  • Docker mysql image: periodic access denied for root
  • 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.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.