Logo

Docker NVIDIA GLX Desktop: 功能强大的云端虚拟桌面解决方案

docker-nvidia-glx-desktop

Docker NVIDIA GLX Desktop简介

Docker NVIDIA GLX Desktop是一个基于KDE Plasma桌面环境的Docker容器项目,专为Kubernetes设计,支持OpenGL EGL和GLX、Vulkan以及Wine/Proton,可通过WebRTC和HTML5为NVIDIA GPU提供开源远程云端/HPC图形或游戏流媒体平台。该项目的一个重要特性是它会生成自己独立的X.Org X11服务器,而不是使用宿主机的X服务器,因此不需要/tmp/.X11-unix宿主套接字或宿主配置。

Docker NVIDIA GLX Desktop界面

对于那些希望直接访问NVIDIA GPU(非官方支持Intel和AMD GPU)而不使用X.Org X11服务器的用户,可以考虑使用docker-nvidia-egl-desktop项目。该项目支持在多个容器间共享一个GPU,兼容Apptainer/Singularity,并且在没有GPU的情况下可以自动回退到软件加速(但图形性能较低)。

主要特性

  1. 基于KDE Plasma桌面环境
  2. 支持OpenGL EGL和GLX
  3. 支持Vulkan
  4. 支持Wine/Proton,可运行Windows应用和游戏
  5. 通过WebRTC和HTML5提供远程访问
  6. 独立的X.Org X11服务器
  7. 针对NVIDIA GPU优化
  8. 支持Kubernetes部署

使用要求

要使用Docker NVIDIA GLX Desktop,需要满足以下条件:

  1. 宿主机NVIDIA GPU驱动版本至少为450.80.02,推荐470.42.01或更高版本
  2. 安装配置NVIDIA Container Toolkit
  3. Maxwell或更新一代的NVIDIA GPU(消费级、专业级或数据中心级)
  4. 对于Selkies-GStreamer高性能NVENC后端,GPU需要支持NVIDIA Video Encode and Decode GPU Support Matrix中"NVENC - Encoding"部分列出的"H.264 (AVCHD)"编码

使用方法

Docker运行

  1. 使用以下命令运行容器:
docker run --name xgl -it -d --gpus 1 --tmpfs /dev/shm:rw -e TZ=UTC -e DISPLAY_SIZEW=1920 -e DISPLAY_SIZEH=1080 -e DISPLAY_REFRESH=60 -e DISPLAY_DPI=96 -e DISPLAY_CDEPTH=24 -e PASSWD=mypasswd -e SELKIES_ENCODER=nvh264enc -e SELKIES_VIDEO_BITRATE=8000 -e SELKIES_FRAMERATE=60 -e SELKIES_AUDIO_BITRATE=128000 -e SELKIES_BASIC_AUTH_PASSWORD=mypasswd -p 8080:8080 ghcr.io/selkies-project/nvidia-glx-desktop:latest
  1. 使用浏览器访问http://localhost:8080连接到Web服务器

  2. 如果Selkies-GStreamer WebRTC HTML5界面无法连接或极其缓慢,请仔细阅读WebRTC和防火墙问题部分

Kubernetes部署

  1. 创建包含认证密码的Kubernetes Secret:
kubectl create secret generic my-pass --from-literal=my-pass=YOUR_PASSWORD
  1. 编辑xgl.yml文件并创建Pod:
kubectl create -f xgl.yml
  1. 访问Kubernetes集群提供的入口端点或反向代理,连接到端口8080的Web服务器

  2. 同样,如果遇到连接问题,请参考WebRTC和防火墙问题部分

配置选项

Docker NVIDIA GLX Desktop提供了多种配置选项,可以通过环境变量进行设置:

  • DISPLAY_SIZEWDISPLAY_SIZEH: 设置显示分辨率
  • DISPLAY_REFRESH: 设置刷新率
  • DISPLAY_DPI: 设置DPI
  • DISPLAY_CDEPTH: 设置色深
  • PASSWD: 设置Linux用户账户密码
  • SELKIES_ENCODER: 设置视频编码器(nvh264enc, x264enc, vp8enc, vp9enc)
  • SELKIES_VIDEO_BITRATE: 设置视频比特率
  • SELKIES_FRAMERATE: 设置帧率
  • SELKIES_AUDIO_BITRATE: 设置音频比特率
  • SELKIES_BASIC_AUTH_PASSWORD: 设置HTML5界面认证密码

更多配置选项可以在Selkies-GStreamer主脚本中找到。

WebRTC和防火墙问题

由于Docker NVIDIA GLX Desktop是自托管的WebRTC解决方案,可能会遇到一些连接问题。以下是一些解决方案:

  1. 使用内部TURN服务器
  2. 使用主机网络模式
  3. 配置外部TURN服务器

详细的配置步骤请参考WebRTC和防火墙问题部分。

故障排除

在使用Docker NVIDIA GLX Desktop时可能遇到一些常见问题,以下是一些解决方案:

  1. Selkies-GStreamer WebRTC HTML5界面相关问题: 参考Selkies-GStreamer文档

  2. 自定义容器: 参考开发文档

  3. 键盘布局问题: 运行"Input Method: Configure Input Method"从开始菜单,取消勾选"Only Show Current Language",搜索并添加可用的输入法

  4. 容器无法工作: 检查NVIDIA Container Toolkit配置,确保NVIDIA_DRIVER_CAPABILITIES环境变量设置正确

  5. 使用systemd、polkit、FUSE挂载或沙箱化应用分发系统: 不建议在容器中使用,可能会破坏容器隔离性

  6. 笔记本电脑或集成/混合GPU系统: 推荐使用docker-nvidia-egl-desktop

  7. 多容器共享GPU: 使用docker-nvidia-egl-desktop

  8. 宿主机已有GUI或X服务器: 修改/etc/X11/xorg.conf配置

  9. Vulkan不工作: 确保NVIDIA_DRIVER_CAPABILITIES包含graphicsdisplay

  10. 高分辨率问题: 升级到NVIDIA驱动550或更高版本,或调整VIDEO_PORT环境变量

Docker NVIDIA GLX Desktop构建状态

结语

Docker NVIDIA GLX Desktop为用户提供了一个强大的云端虚拟桌面解决方案,特别适合需要高性能图形处理和远程访问的场景。通过详细的配置和优化,用户可以充分利用NVIDIA GPU的性能,实现流畅的远程桌面体验和游戏流媒体。虽然在使用过程中可能遇到一些挑战,但通过本文提供的故障排除指南,大多数问题都可以得到解决。

对于那些需要更灵活GPU使用或在不同环境下部署的用户,可以考虑使用docker-nvidia-egl-desktop项目作为替代方案。无论选择哪种方案,这些项目都为云端图形处理和远程桌面访问提供了创新的解决方案,推动了相关技术的发展。

如果您在使用过程中遇到任何问题或需要进一步的支持,可以通过DiscordGitHub Discussions寻求帮助。对于技术咨询或bug报告,请使用GitHub Issues

Docker NVIDIA GLX Desktop项目正在不断发展和改进,欢迎社区贡献者参与到项目中来,共同打造更加完善的云端虚拟桌面解决方案。 🚀💻🎮

相关项目

Project Cover
first-order-model
First Order Motion Model项目提供了一种先进的图像动画运动模型,通过驾驶视频和源图像生成逼真的动画序列。支持包括VoxCeleb、Fashion和MGIF在内的多种数据集,提供详细的安装和使用指南。项目支持Python和Docker,确保了环境兼容性,还提供Colab和Kaggle的在线演示。此外,该项目还具备面部交换功能,适用于监督和非监督的视频编辑任务。
Project Cover
cvat
CVAT是一个计算机视觉的交互式视频和图像标注工具,被全球数万用户和企业广泛使用。提供免费在线版和自托管解决方案,支持Roboflow和HuggingFace集成。支持多种标注格式,并通过自动标注功能加速标注过程。企业用户可享受高级功能和专业支持服务。
Project Cover
openui
OpenUI简化了UI组件的构建,支持实时渲染和多框架转换(如React、Svelte)。兼容OpenAI、Groq等多种模型,并支持本地与Docker运行,适用于各种开发环境。
Project Cover
Flowise
Flowise让您通过拖放界面轻松创建自定义LLM应用程序。提供详细的快速安装指南,支持NodeJS和Docker部署。模块化架构对开发者友好,并支持自托管,适用于AWS、Azure、Digital Ocean等主流云平台,确保应用灵活且易扩展。
Project Cover
deepo
Deepo是一个开源框架,用于轻松组装深度学习研究的Docker镜像。通过提供多种标准组件和定制化Dockerfile生成器,用户可以简单定义环境并自动解决依赖问题。Deepo支持几乎所有常用的深度学习框架,提供预构建的Docker镜像,支持GPU加速和CPU模式,兼容Linux、Windows和OS X。尽管该项目已停止维护,但仍为快速搭建深度学习环境提供了宝贵的工具和资源。
Project Cover
serving
TensorFlow Serving 是一个为生产环境设计的灵活且高性能的机器学习模型推理系统。它管理训练后的模型生命周期,通过高效查询表提供版本化访问,支持多模型和多版本同时部署。系统支持 gRPC 和 HTTP 推理端点,允许无缝部署新版本,支持金丝雀发布和 A/B 测试,并且延迟极低。调度器将推理请求分组以在 GPU 上联合执行,支持包括 TensorFlow 模型、嵌入、词汇表和特征转换在内的多种服务对象。
Project Cover
ragapp
RAGapp是一款企业级Agentic RAG解决方案,配置简单如OpenAI的自定义GPT,可通过Docker部署在云基础设施中。基于LlamaIndex构建,支持OpenAI和Gemini托管AI模型以及本地Ollama模型。提供Docker Compose和即将推出的Kubernetes部署选项。访问Admin UI进行配置,详情请参阅各端点和安全信息。
Project Cover
chatgpt-web
该项目独立开发自ChatGPT Web,新增注册、登录、密码重置、双因素认证、多用户管理及会话同步功能,支持通过身份验证代理实现单点登录。提供OpenAI官方API和非官方代理服务器两种ChatGPT API使用方法,适应多种环境部署。项目开源免费,仅供学习使用。
Project Cover
TensorRT
NVIDIA TensorRT 开源软件提供插件和 ONNX 解析器的源码,展示 TensorRT 平台功能的示例应用。这些组件是 TensorRT GA 版本的一部分,并包含扩展和修复。用户可以轻松安装 TensorRT Python 包或根据构建指南编译。企业用户可使用 NVIDIA AI Enterprise 套件,并可加入 TensorRT 社区获取最新产品更新和最佳实践。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号