我正在尝试实现OSRM作为Windows Server 2016上的服务。我安装了Docker社区版17.06.0-ce-win 18 2017-06-28并将OSRM作为服务实现。不过,我想提出的问题是:从windows注销时服务停止。我希望在服务器注销时运行服务。有什么方法可以实现这一点吗?
mbyulnm01#
您应该使用-d选项:
-d
docker run -d something else...
使用-d,你可以在分离模式下启动一个容器。分离模式意味着Docker容器在你的终端后台运行,也就是说,你可以注销,它仍然运行。我正在使用OSRM表函数和以下代码行:
docker run -d --log-opt max-size=10m --log-opt max-file=5 --restart always --name osrm_brazil -p 5000:5000 -v "${PWD}/data:/data" osrm/osrm-backend osrm-routed --algorithm mld --max-table-size 25000 /data/brazil-latest.osrm
v2g6jxz62#
虽然这是一个迟来的答复,我认为这将是有用的人仍然在寻找答案在windows服务器中,最好的选择是使用Docker桌面,它使用简单,并且具有灵活的内存分配和交换空间。但这里的主要问题是Docker桌面在用户从服务器注销时停止工作。这是因为Docker桌面需要一个后台进程作为一个进程运行,并且在注销时该进程将停止。但有一个陷阱,我们可以从服务器“断开”,而不是注销,并确保进程正在运行,没有任何中断。
而且它还没有结束。一旦你从服务器上断开连接,有一个固定的时间限制,这是3个小时,直到进程运行,然后它停止。但是等等...我们有替代方案来防止这种情况发生。我想知道为什么微软没有做足够的文档在这方面...!有一个超时设置选项在Windows服务器,可以访问如下开始〉编辑组策略〉计算机配置〉管理模板〉Windows组件〉远程桌面服务〉远程桌面会话主机〉会话时间限制此部分下有5个选项,其中第1个选项用于设置断开会话的时间限制。您需要启用它并将值设置为“从不”。另外,其他3个选项将从“未配置”更改为“禁用”。第5个选项与注销相关,这取决于用户要求。
一旦这些都完成了,你就可以断开与服务器的连接,Docker引擎将在后台正常工作,你的容器将不间断地工作希望这能帮上忙谢谢
2条答案
按热度按时间mbyulnm01#
您应该使用
-d
选项:使用
-d
,你可以在分离模式下启动一个容器。分离模式意味着Docker容器在你的终端后台运行,也就是说,你可以注销,它仍然运行。我正在使用OSRM表函数和以下代码行:
v2g6jxz62#
虽然这是一个迟来的答复,我认为这将是有用的人仍然在寻找答案
在windows服务器中,最好的选择是使用Docker桌面,它使用简单,并且具有灵活的内存分配和交换空间。但这里的主要问题是Docker桌面在用户从服务器注销时停止工作。这是因为Docker桌面需要一个后台进程作为一个进程运行,并且在注销时该进程将停止。
但有一个陷阱,我们可以从服务器“断开”,而不是注销,并确保进程正在运行,没有任何中断。
而且它还没有结束。一旦你从服务器上断开连接,有一个固定的时间限制,这是3个小时,直到进程运行,然后它停止。
但是等等...我们有替代方案来防止这种情况发生。我想知道为什么微软没有做足够的文档在这方面...!有一个超时设置选项在Windows服务器,可以访问如下
开始〉编辑组策略〉计算机配置〉管理模板〉Windows组件〉远程桌面服务〉远程桌面会话主机〉会话时间限制
此部分下有5个选项,其中第1个选项用于设置断开会话的时间限制。您需要启用它并将值设置为“从不”。另外,其他3个选项将从“未配置”更改为“禁用”。第5个选项与注销相关,这取决于用户要求。
一旦这些都完成了,你就可以断开与服务器的连接,Docker引擎将在后台正常工作,你的容器将不间断地工作
希望这能帮上忙谢谢