【发布时间】:2016-10-05 13:38:11
【问题描述】:
我正在尝试在 windows server2016 上的 docker 容器中安装服务。
只需将服务放在那里并进行 Powershelling:
New-Service -Name Bob -StartupType Automatic -BinaryPathName .\SVCHost.exe
添加服务但是在容器中我得到了结果:
PS C:\Program Files\COMPANY\Repository> start-service -Name bob
start-service : Service 'bob (Bob)' cannot be started due to the following error: Cannot start service Bob on computer '.'.
At line:1 char:1
+ start-service -Name bob
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
我已尝试创建用户并设置启动用户凭据,但同样的问题。
查看https://github.com/Microsoft/sql-server-samples/blob/master/samples/manage/windows-containers/mssql-server-2016-express-windows/dockerfile 表明他们使用sqlexpress 来安装服务。
长话短说... 如何在 Windows server 2016 Docker 容器中注册服务
【问题讨论】:
-
在
-BinaryPathName中尝试一个完全限定的路径。此外,MS 映像使用 Windows 服务,因为这是它们在 Windows 中的传统运行方式。在 Docker 中,最好在前台运行您的 exe,并让 Docker 通过运行-d将容器置于后台。 -
你说得对,它是完全合格的名称......我也知道 -d 但由于将遗留问题带到 docker 的复杂性,我正在尝试“简单的方法”
标签: powershell docker windows-server-2016