Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI availability on Windows Container #306

Closed
incapdns opened this issue Dec 24, 2022 · 21 comments
Closed

GUI availability on Windows Container #306

incapdns opened this issue Dec 24, 2022 · 21 comments
Labels
question Further information is requested

Comments

@incapdns
Copy link

I have a very basic question.

I am aware that the functionality of RDP and interactive sessions with GUI support has been discontinued in windows containers, but if in the near future it is reintroduced it will be through an update in the Windows image or the resource called "Container" on Host?

I say this because I have my doubts if the functionality broke due to the image (windows server base image) no longer having this resource, or the function of containers referring to isolated processes being unable to reproduce the RDP.

So basically, my question is, was the RDP and GUI broken due to the "Containers" function not supporting such features or due to the image being modified?

[Excuse my English, I'm using google translator]

I would like to thank you in advance, sincerely

Lucas P.

@incapdns incapdns added the question Further information is requested label Dec 24, 2022
@ghost ghost added the triage New and needs attention label Dec 24, 2022
@vrapolinario
Copy link
Contributor

Hi Lucas, Please note that the GUI and RDP functionalities are not broken (although you might have used a word with a different connotation). These functionalities are not present by design. They were removed from the Windows container images and are not supported. We don't have plans on enabling RDP or GUI in the near future and this would require a massive redesign of how we implement Windows containers.

Our recommendation is that if your application requires a GUI or RDP, then you should stick to using VMs. Services like Azure Virtual Desktop, or Azure VMs might be a better fit.

@fady-azmy-msft fady-azmy-msft removed the triage New and needs attention label Jan 10, 2023
@iisfaq
Copy link

iisfaq commented Jan 14, 2023

Hi Lucas, Please note that the GUI and RDP functionalities are not broken (although you might have used a word with a different connotation). These functionalities are not present by design. They were removed from the Windows container images and are not supported. We don't have plans on enabling RDP or GUI in the near future and this would require a massive redesign of how we implement Windows containers.

Our recommendation is that if your application requires a GUI or RDP, then you should stick to using VMs. Services like Azure Virtual Desktop, or Azure VMs might be a better fit.

Can you provide a link to what is supported and what is not? Maybe some notes where we download the images would help people like myself so I don’t waste my time.

I noticed rdp service is running on windows server 2022 full in a container and 3389 is active using net stat -a.

what has been removed?

Chris

@fady-azmy-msft
Copy link
Contributor

Hey @iisfaq, you can find details about what is not supported on this page.

@incapdns
Copy link
Author

I noticed rdp service is running on windows server 2022 full in a container and 3389 is active using net stat -a.

Strange, which version are you running?, in my netstat -a i dont see the port 3389 listening.

@gernotpokorny
Copy link

Yeah, this is pretty bad, that this features are not available. it would make much sense to have such features for development especially when a dev team needs a source of truth during development. Containers are perfect for that.

@elfoxus
Copy link

elfoxus commented Jul 10, 2023

Yep, it is pretty bad it has been removed. I could use it for testing purposes...

@kyleboddy
Copy link

Agreed. I am in need of this given the fact that there are Windows-only GUI applications in my industry that require heavy GPU load, and renting from cloud computing services typically goes through Docker while they support zero Windows host OS methods, meaning they're all unusable for me.

@wizpresso-steve-cy-fan
Copy link

@fady-azmy-msft Where can we pledge for this to be implemented again? We want to use this so that we can have a quick debug session on production, i.e. using it to catch a live bug. We are not sure if we can technically use VS code remotely for this, but having a RDP session is clearly the quickest way to achieve that.

@vrapolinario
Copy link
Contributor

Let me clarify my previous statement of "They were removed from the Windows container images". These are removed from the Windows containers images when we build these images for publishing. As I mentioned, this is by design and have never been supported, so technically, this is a request for a new feature. Here is the right place to make this request and the team is seeing this.

With that said, I wanted to clarify two things:
First, the Server image (the larger one at mcr.microsoft.com/windows/server:ltsc2022) does provide the GUI APIs. You don't have the GUI itself, neither RDP, but if your app runs in the background and needs access to the API, it should work.
Second, this same image also supports GPU. This is not supported on AKS yet, but you should be able to spin up a Windows node and make the GPU available to the Windows container via DirectX.

@kyleboddy
Copy link

The use case I have requires the window to be drawn/rendered for it to be usable, unfortunately.

@ntrappe-msft
Copy link
Contributor

As @vrapolinario mentioned, Windows Containers were designed to not have RDP or GUI support. It would go against the use cases we had in mind. However, we do know that many people have requested this as a feature.

@KazFraser
Copy link

Not meaning to revive a dead issue, but from what I understand, Windows Sandbox is built on container technology, so I find it a bit strange that this functionality cannot be used outside of the sandbox.

@ohault
Copy link

ohault commented Apr 28, 2024

It's a shame and if Windows Container and we can no longer run Windows applications in Windows Containers, why continue to call them Windows Containers!

@vrapolinario
Copy link
Contributor

Hey folks, keep in mind that while Windows containers and Sandbox might share have some similarities, they are not the same tech and were not built with the same goals in mind. Windows containers never supported RDP neither GUI apps. While we have heard from customers that this is something you'd like to see, we never supported RDP nor GUI on Windows containers. While we keep the internal debate on this support, our statement hasn't changed. You can absolutely run Windows applications on Windows containers - in fact one of the main scenarios for Windows containers is to take server-side applications that run as processes or services (think background, server apps) that exist to today on VMs and move them to containers.

Thank you for the continued feedback, just please keep these in mind as this space is focused on Windows containers.

@ohault
Copy link

ohault commented Apr 29, 2024

T

Hey folks, keep in mind that while Windows containers and Sandbox might share have some similarities, they are not the same tech and were not built with the same goals in mind. Windows containers never supported RDP neithwher GUI apps. While we have heard from customers that this is something you'd like to see, we never supported RDP nor GUI on Windows containers. While we keep the internal debate on this support, our statement hasn't changed. You can absolutely run Windows applications on Windows containers - in fact one of the main scenarios for Windows containers is to take server-side applications that run as processes or services (think background, server apps) that exist to today on VMs and move them to containers.

Thank you for the continued feedback, just please keep these in mind as this space is focused on Windows containers.

Thank you for your answer, but I have to underline why I don't agree, and I'm far to be alone.

Can you please wake up the Windows Containers team ?
e.g. they should take a look at the WSLg architecture.

@vrapolinario
Copy link
Contributor

Thanks @ohault.
Not sure where you got the info for your note #1 above. We might have made an update to further remove components that should never have been there, but that doesn't change the fact that RDP and GUI were not present and were never supported. We have stated that since the beginning of Windows containers in Windows Server 2016. On note #2 you can see that we did check for customer sentiment (which we continue to do) on this topic. It's more than clear to us that there is a customer scenario, but we do have technical limitations to implement this so it's not something trivial. We will continue to evaluate, but no time frame on this at this moment.

As for your item #3, we're fully aware that customers will find workarounds to run their applications. Please note WINE runs on Linux so it's not something we support or can provide an opinion on. This is totally under the customer responsibility. Now, As alternative to running GUI apps, the video itself mentions other options that we do recommend, VDI, upgrade the code base. While not ideal, these are the options since Windows containers can't be used to run these type of applications.

Once again, we appreciate you giving your perspective and feedback. We definitely take this into consideration for future planning.

@mussolene
Copy link

Hi. Then I would like to understand whether it is possible to use third-party resources such as VNC access to the desktop.? Or is it also not possible to do this?

@vrapolinario
Copy link
Contributor

We can't comment on third-party components as we don't own them. You might want to reach out directly to them. What I can say for sure is: If there's a mechanism that emulates the GUI for Windows containers, it's doing so in its own way with no Microsoft support. If customers are comfortable on relying on those tools, their vendors, or their support, that's outside of Microsoft's capacity - as long as there are no violations to EULA, usage rights, etc. Furthermore, you might be familiar with tools that do this for Windows outside of container environments that will simply not work with containers because the APIs needed for these tools to work are simply not there, so it's a test and trial scenario.

@mussolene
Copy link

That is, there is no access to the GUI?

@vrapolinario
Copy link
Contributor

vrapolinario commented May 2, 2024

Two-part answer:

If you are asking: Can I as a user access the GUI of a Windows container to open my app? The answer is no. Neither via GUI nor RDP.
If you are asking: Is there any way to access the GUI? Then the Server image does provide the GUI APIs. This is intended for UI testing or other purposes like that. You could, for example, run a CI/CD pipeline using an automated UI testing tool that validates if your app runs and even check for UI validation. This is done without opening the GUI/UI and we have reports of internal teams at Microsoft and customers doing it.

@ohault
Copy link

ohault commented May 2, 2024

That is, there is no access to the GUI?

AFAIK, since a specific update, Microsoft has stopped to provide an interactive session in Windows Containers for a mysterious and very controversial reason. It's a double shame because in one hand it is hiding the true reason of such a choice and in the other hand it is an evidence of lack of understanding of what the technology should provide. Just ask among others MS teams, to the Azure app service team why they drop support of Windows Containers. The basic would have been to start documenting the ALL distinct technologies used for isolation (the nobel gases). A real reset of Windows Container team is expected.
In the while, you can use this or something similar - https://youtu.be/xhGYobuG508?si=u20xrF3bkUL0a5Lm

Isn't it promising ? WSLg team could help to even avoid RDP and provide hardware acceleration support with DWM integration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests