Создайте образ Windows 10 для использования в качестве контейнера docker

Я пытаюсь создать образ Windows 10, чтобы закрепить существующее устаревшее приложение. По очень веским причинам базовым образом должна быть Windows 10 нет Windows Server. Как мне это сделать?

То, что я имел в виду, было:

1) Создайте мою установку vanilla Windows как машину Hyper-V.

2) Установите на него приложение

3) Выключите эту виртуальную машину

4) Преобразуйте полученный VHDX в файл образа Windows (WIM)

5) Каким-то образом используйте это в качестве базового изображения для docker

На правильном ли я пути?

Нет, это не сработает.

Контейнеры Windows (это то же самое, что контейнеры Docker в Linux) в основном содержат часть "пользовательского пространства" Windows, но совместно используют одно базовое ядро Windows server.

Я нахожу удобным думать об этом так, что каждый контейнер представляет собой что-то вроде отдельной изолированной учетной записи пользователя в Windows. У вас может быть несколько учетных записей пользователей, и каждая из них имеет свой собственный частный набор файлов, и каждая из них отгорожена друг от друга, но они по-прежнему привязаны непосредственно к базовой ОС, и все они работают на одном и том же общем ядре.

Это здорово, так как с одним общим ядром нам не нужна аппаратная виртуализация на уровне процессора или памяти, поэтому все может быть намного эффективнее.

Однако, следуя этому дизайну, пользовательский интерфейс Windows 10 и все такое прочее не предназначены для работы с ядром Windows Server 2016. Они могут работать при совместном использовании, но это маловероятно.

Кроме того, вы не можете просто взять VHD / WIM или другое изображение и сказать: "это мой контейнер". Вы должны начать с "базового образа", который фактически является представлением вашей основной операционной системы, а затем применить изменения по мере необходимости. Я не могу себе представить, как пытаюсь определить набор изменений, необходимых для того, чтобы взять базовый Windows server и превратить его в Windows 10.

Похоже, кто-то добился этого, но комментарии показывают, что не так много людей смогли воспроизвести:

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

Каковы ваши “очень веские причины”?

веской причиной было то, что он запускал SAS, который работает только в несерверных Windows, если вы не используете серверную версию

Самое близкое к контейнерам Windows в Windows 10, что приходит мне на ум, - это App-V.