Estou tentando criar uma imagem do Windows 10 para dockerizar um aplicativo legado existente. Por razões muito boas, a imagem base deve ser o Windows 10 nao servidor. Como faço para fazer isso?
O que eu tinha em mente era:
1) Crie minha instalação vanilla Windows como uma máquina Hyper-V
2) Instale o aplicativo nele
3) Desligue esta VM
4) converta o VHDX resultante em um arquivo de imagem do Windows (WIM)
5) de alguma forma, use isso como a imagem base para docker
Os contêineres do Windows (isso é o mesmo que os contêineres do Docker no Linux) contêm basicamente a parte "espaço do usuário" do windows, mas compartilham o único kernel subjacente do Windows server.
Acho que uma maneira conveniente de pensar nisso é que cada contêiner é como uma conta de usuário isolada separada no windows. Você pode ter várias contas de usuário, e cada uma delas tem seu próprio conjunto privado de arquivos, e cada uma está murada uma da outra, mas ainda está vinculada diretamente ao sistema operacional subjacente, e todas rodando no mesmo kernel compartilhado.
Isso é ótimo, pois com um único kernel compartilhado, não precisamos de virtualização de hardware no nível da CPU ou da memória para que as coisas possam ser muito mais eficientes.
Seguindo esse design, no entanto, a interface do usuário do Windows 10 e todas essas coisas não foram projetadas para funcionar com o kernel do Windows Server 2016. Eles podem trabalhar por co-incidência, mas não é provável.
Além disso, você não pode simplesmente pegar um VHD/WIM ou outro tipo de imagem e dizer "Esse é o meu contêiner". Você tem que começar com uma "imagem base" que é efetivamente uma representação do seu sistema operacional principal e, em seguida, aplicar as alterações conforme necessário. Não consigo imaginar tentando descobrir o conjunto de alterações necessárias para pegar um servidor windows básico e transformá-lo em windows 10.