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
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.