首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法通过远程桌面连接到正在运行的Windows容器?

是否有方法通过远程桌面连接到正在运行的Windows容器?
EN

Stack Overflow用户
提问于 2019-01-19 12:40:31
回答 1查看 12.4K关注 0票数 28

我想在码头窗口服务器容器(https://hub.docker.com/r/microsoft/windowsservercore/)中运行一个旧的https://hub.docker.com/r/microsoft/windowsservercore/应用程序。

如果这个应用程序不需要UI,那么一切都会很简单。它的UI做了很多事情,而这些事情不能通过命令行或其他API来完成。

基本上,最好的办法是通过RDP到达这个运行中的容器。

据我所知,它不过是一个运行在某个TCP端口上的服务(TermService) (3389是默认的)。

但是TermService似乎没有运行在微软/windowsservercore容器中。

我找到了一篇文章,展示了如何激活它:https://withinrafael.com/2018/03/09/using-remote-desktop-services-in-containers/

基本上,我保留了同一个Dockerfile,只是更改了一些凭据。

代码语言:javascript
复制
#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

我使用以下命令启动容器:

代码语言:javascript
复制
docker run -it -p3389:3389 myimage powershell

当我连接到容器并输入一些powershell命令来列出正在运行的服务时,我可以看到TermService运行良好。这是我用来列出服务的命令。

代码语言:javascript
复制
Get-Service

当我列出打开的TCP端口时,我可以看到3389被监听。这是我用来显示打开的端口的命令。

代码语言:javascript
复制
netstat -an

当我试图通过我的远程桌面客户端连接到容器时,事情一开始似乎还不错。

  • 它向我要主人。
  • 然后输入用户名和密码。
  • 如果我输入了错误的凭据,它会说我是“错误的凭据”,因此可以很好地与服务器进行通信。
  • 如果我输入好的凭据,什么都不会发生。没有错误信息,但也没有显示屏幕.

我真的不知道是否在某个地方生成了日志。

如果像TigerVNC这样的东西可以代替RDS,我会没事的。我以前从未试过这个工具,但它似乎能胜任这项工作。

如何控制运行在windows容器中的GUI应用程序?

EN

回答 1

Stack Overflow用户

发布于 2019-10-14 22:44:37

您可以在事件查看器中找到RDP客户机的日志:“应用程序和服务Logs"\Microsoft\Windows\TerminalServices-ClientActiveXCore.”。我要说的是:

  1. 客户端已经建立了到服务器的多传输连接。
  2. RDPClient_SSL:在响应TsSslEventInvalidState (错误代码0x8000FFFF)从TsSslStateDisconnected转换到TsSslStateDisconnected时遇到错误。
  3. RDP ClientActiveX已断开(Reason= 2)

原因2是客户端关闭会话。

我的偏执狂告诉我,微软回去修补了这个图像,以防止人们使用RDP与码头,但谁知道,也许我们只是遗漏了一些明显的东西。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54267192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档