Docker Container for Windows - desktop app

docker, docker-for-windows, windows

Solution

No, this isn't something you will be able to do.

There are currently two Windows container images, `microsoft/windowsservercore` and `microsoft/nanoserver`

nanoserver

This blog post about TP4 (one of the earlier releases) says

The only option available when logging into console of a virtual machine running Nano Server or connecting a crash cart to a physical Nano Server is this very plain emergency console

This section on managing Nano server also states

Nano Server is managed remotely. There is no local logon capability at all, nor does it support Terminal Services.

There is also this article, admittedly not from Microsoft, about Windows Nano server

Nano Server strips back the operating system further still, dropping things like the GUI stack, 32-bit Win32 support, local logins, and remote desktop support.

Nano Server is designed for two kinds of workload: cloud apps built on runtimes such as .NET, Java, Node.js, or Python, and cloud infrastructure, such as hosting Hyper-V virtual machines.

servercore

Docker blog has a pretty interesting entry Introducing Docker for Windows Server 2016. This part addresses the question of GUI apps

The Windows Server Core image comes with a mostly complete userland with the processes and DLLs found on a standard Windows Server Core install. 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.

If you wanted to set up that kind of an environment, one option is to use something like Vagrant to orchestrate starting and provisioning regular windows VMs. Though 6 windows VMs will not be easy on memory.

Problem

If I create a container with windows image on it, is it possible to use a remote connection to actually see the desktop and , for example, play minesweeper? My use case is this: I have hundreds of users. Each user need to create their our infrastructure consisting in about 6 machines linked together. After creating, the user will open some desktop gui apps on each one using a remote desktop connection.

Original source