Crear una imagen de Windows 10 para usarla como contenedor de Docker

Estoy tratando de crear una imagen de Windows 10 para acoplar una aplicación heredada existente. Por muy buenas razones, la imagen base tiene que ser Windows 10 ni Servidor de Windows. ¿Cómo hago para hacer esto?

Lo que tenía en mente era:

1) Crear mi instalación de Windows vainilla como una máquina Hyper-V

2) Instale la aplicación en él

3) Apague esta máquina virtual

4) Convierta el VHDX resultante en un archivo de imagen de Windows (WIM)

5) De alguna manera, use esto como la imagen base para docker

Estoy en el camino correcto?

No, esto no funcionará.

Los contenedores de Windows (esto es lo mismo que los contenedores Docker en Linux) básicamente contienen la parte de "espacio de usuario" de Windows, pero comparten el único kernel subyacente de Windows Server.

Encuentro que una forma conveniente de pensarlo es que cada contenedor es como una cuenta de usuario aislada separada en Windows. Puede tener varias cuentas de usuario, y cada una tiene su propio conjunto privado de archivos, y cada una está aislada entre sí, pero aún están vinculadas directamente al sistema operativo subyacente, y cada una se ejecuta en el mismo kernel compartido.

Esto es genial, ya que con un solo kernel compartido no necesitamos virtualización de hardware a nivel de CPU o memoria, por lo que las cosas pueden ser mucho más eficientes.

Sin embargo, siguiendo ese diseño, la interfaz de usuario de Windows 10 y todas esas cosas no están diseñadas para funcionar con el kernel de Windows Server 2016. Es posible que funcionen por coincidencia, pero no es probable.

Además, no puede simplemente tomar un VHD / WIM u otro tipo de imagen y decir "ese es mi contenedor". Debe comenzar con una "imagen base" que sea efectivamente una representación de su sistema operativo principal y luego aplicar los cambios según sea necesario. No me imagino tratando de averiguar el conjunto de cambios necesarios para tomar un servidor base de Windows y convertirlo en Windows 10.

Parece que alguien lo logró, pero los comentarios muestran que no mucha gente pudo reproducirlo:

https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1

¿Cuáles son sus “muy buenas razones”?

la buena razón fue que ejecutara SAS, que solo se ejecuta en Windows que no son de servidor, a menos que cambie la versión del servidor

Lo más parecido a los contenedores de Windows en Windows 10 que me viene a la mente es App-V.