Fre*_*uai 13 remote-desktop rds windows-server docker docker-for-windows
我想在docker Windows服务器容器(https://hub.docker.com/r/microsoft/windowsservercore/)中运行旧的.NET应用程序。
如果此应用程序不需要UI,一切将变得容易。它的UI做了很多工作,而这些工作无法通过命令行或其他API来完成。
基本上,完美的事情是通过RDP到达此运行容器。
据我了解,它不过是在某个TCP端口(默认端口3389)上运行的服务(TermService)。
但似乎TermService不在Microsoft / windowsservercore容器中运行。
我发现了一篇文章介绍如何激活它:https : //withinrafael.com/2018/03/09/using-remote-desktop-services-in-containers/
基本上,我保留了相同的Dockerfile,只是更改了一些凭据。
#escape=`
FROM microsoft/windowsservercore:1709_KB4074588
RUN net user /add jerome
RUN net user jerome aDifficultPassword
RUN net localgroup "Remote Desktop Users" jerome /add
RUN net localgroup "Administrators" jerome /add
RUN cmd /k reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v TemporaryALiC /t REG_DWORD /d 1
Run Code Online (Sandbox Code Playgroud)
我使用以下命令启动容器:
docker run -it -p3389:3389 myimage powershell
Run Code Online (Sandbox Code Playgroud)
当我连接到容器并键入一些powershell命令以列出正在运行的服务时,我可以看到TermService运行良好。这是我用来列出服务的命令。
Get-Service
Run Code Online (Sandbox Code Playgroud)
当我列出打开的TCP端口时,可以看到监听了3389。这是我用来显示打开的端口的命令。
netstat -an
Run Code Online (Sandbox Code Playgroud)
当我尝试通过远程桌面客户端连接到容器时,开始时一切正常。
我真的不知道日志是否在某处生成。
如果像TigerVNC这样的东西代替RDS,我会好的。我以前从未尝试过此工具,但似乎可以完成这项工作。
您将如何控制Windows容器中运行的GUI应用程序?
您可以在事件查看器中找到 RDP 客户端的日志:“应用程序和服务日志”\Microsoft\Windows\TerminalServices-ClientActiveXCore。这是对我说的:
RDPClient_SSL:从 TsSslStateDisconnected 转换为 TsSslStateDisconnected 以响应 TsSslEventInvalidState(错误代码 0x8000FFFF)时遇到错误。
RDP ClientActiveX 已断开连接(原因= 2)
原因 2 是客户端关闭了会话。
我的偏执告诉我,微软回过头来修补映像以防止人们将 RDP 与 docker 一起使用,但谁知道呢,也许我们只是遗漏了一些明显的东西。
| 归档时间: |
|
| 查看次数: |
3228 次 |
| 最近记录: |