11

I am trying to build a Windows Container based Micro-Service on Server 2016 CTP5 using .net 4.5.

In the non-container world, I am using a console app deployed as a Windows Service that subscribes to a queue and does its work.

In a container, I can just run the console app and it seems to run just fine. Is there a need to install it as a Windows Service?

4

1 回答 1

19

不,您不想将其安装为服务。当您在容器中运行应用程序时,Docker 会监控容器中的活动进程。如果活动进程停止,则容器退出。因此,您应该在前台运行您的应用程序,并让 Docker 将容器置于后台(通过以 开头docker run -d)。

一个例外是现有平台已经是 Windows 服务 - 例如microsoft/iis映像。IIS 在容器的后台运行,因此您需要启动另一个进程来保持容器运行 - 这就是为什么您会看到 IIS 容器是这样启动的:

docker run -d -p 80:80 microsoft/iis ping -t localhost

ping命令使容器保持运行,而 IIS 服务实际响应请求。虽然这并不理想,Docker 正在监控ping,所以如果 IIS 服务停止,容器会继续运行。

于 2016-09-26T15:24:26.067 回答