Запуск созданной службы в Docker контейнере Windows

Задача.

Необходимо в контейнере windows (windows server core + .net framework runtime:4.8) создать службу стороннего приложения и запустить ее.

Есть приложение, написанное с использованием .net framework 4.7 которое запускается на выполнение в фоне как служба.

Сразу напишу, что на компьютере с win10 служба создается и запускается без проблем. И здесь же оговорюсь, что с powershell и cmd почти не работаю, поэтому некоторые приведенные ниже решения где-то некорректны.

Создал образ на базовом образе mcr.microsoft.com/dotnet/framework/runtime:4.8, скопировав в него папку с программой. Запускаю контейнер с powershell. Создаю службу через команду

New-Service -Name my_service -BinaryPathName 'C:\MyProgram\MyApp.exe' -DisplayName "My_Service"

Служба создалась. Отобразилось:

Status   Name               DisplayName
------   ----               -----------
Stopped  my_service         My_Service

Далее пытаюсь запустить службу:

Start-Service my_service

Постоянно получаю ошибку:

Start-Service : Service 'My_Service (my_service)' cannot be started due to the following error: Cannot start service my_service on computer '.'.
At line:1 char:1
+ Start-Service my_service
+ ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

Текст ошибки из разряда: не удалось запустить службу потому что не удалось запустить службу. Гениально!...

Команда whoami выдает user manager\containeradministrator

В сети находил информацию, что скорее всего нужно запускать контейнер с powershell (подключаться к контейнеру) от имени администратора (привелегированного пользователя) командой docker exec --user ContainerAdministrator -it <container_id> powershell Выдает ошибку

container a42ab468e23e9fcefae8cb2899421397e9d113041e85a58ad9b71840a99ad064 encountered an error during hcsshim::System::CreateProcess: failure in a Windows system call: The user name or password is incorrect. (0x52e)
        [Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]

Насколько понимаю из ошибки: имя пользователя и пароль неверны. При этом, как использовать пароль, и какой он - непонятно.

Создавал внутри контейнера нового пользователя с правами админа - так же не могу зайти. Пишет такую же ошибку, что выше. Да и с паролем пользователя не понял, куда его вводить при входе.

И пробовал в контейнере от имени пользователя запустить Start-Process powershell -Verb runAs - вообще ничего не происходит.

Подскажите, пожалуйста, что я делаю не так, или в чем может быть проблема?


Ответы (0 шт):