Я пытаюсь установить функцию Windows " NetworkController
" в Docker-контейнере на Windows 2016 Server TP4, используя Powershell. После запуска « Add-WindowsFeature NetworkController
» я получаю сообщение:
«Вы должны перезагрузить этот сервер, чтобы завершить процесс установки».
Когда я снова проверяю (еще ничего не делая) с Get-WindowsFeature, он имеет состояние установки «InstallPending».
Теперь я не уверен, что означает «перезапустить этот сервер» на 100%, но я предполагаю, что это означает, что я должен перезапустить хост-машину, поскольку перезапускать больше нечего (а сам контейнер - это просто контейнер, а не виртуальная машина, как с подходом Hyper-V).
Поэтому я пробую следующие подходы:
Подход (1)
Я остановил Docker-контейнер с помощью docker stop iisdemo
, затем перезапустил хост-компьютер (мой сервер Windows 2016) и затем перезапустил Docker-контейнер, используя docker start iisdemo
.
Но когда я проверяю NetworkController, он все еще не установлен.
Подход (2)
Во второй попытке я добавляю функцию, затем перезагружаю док-контейнер, не перезагружая сервер Windows 2016, просто запускаю
dock restart iisdemo
,
Теперь происходит нечто странное, когда я пытаюсь проверить функции через Get-WindowsFeature *network*
, процесс сбора данных останавливается на 57%, и контейнер существует сам по себе.
Когда я снова прикрепляю изображение к докеру:
> docker start iisdemo
> docker attach iisdemo
> powershell
> Get-WindowsFeature *network*
Я вернулся к тому, с чего начал:
Подход (3)
Другой третий подход, очевидно, не должен работать, но я все равно попробовал его и перезапустил сервер / хост Windows 2016, не останавливая контейнер докера. Излишне говорить, что это тоже не сработало (такое же поведение, как и в подходе 1, контейнер завершается на 57% сбора данных).
Подход (4)
Запуск " shutdown -r -f -t 10
" внутри контейнера также не помогает. После перезагрузки NetworkController
он все еще не установлен.
Примечание. Я пытался использовать как контейнеры Docker, так и контейнеры Windows (созданные и управляемые с помощью команд Powershell), без разницы.