当前位置: 首页 > article >正文

Rocky9+ Docker + 容器内Linux桌面环境 + Web远程

一、整体架构设计Rocky9宿主机无GUI │ ├── Docker │ ├── 容器1Rocky9 XFCE noVNC ToDesk │ ├── 容器2Rocky9 XFCE noVNC ToDesk │ └── 容器3Rocky9 XFCE noVNC ToDesk │ ├── 访问方式 │ ├── 内网浏览器访问 noVNChttp://IP:6081/6082/6083二、核心技术选型1️⃣ Web访问桌面使用VNC noVNC浏览器直接访问桌面 推荐组合tigervnc-servernoVNC websockify2️⃣ 桌面环境Rocky9 XFCE二、Docker镜像设计核心你需要自定义镜像重点1️⃣ DockerfileFROM rockylinux:9 # 基础工具 RUN dnf -y update --allowerasing \ dnf -y install epel-release \ dnf -y install --allowerasing \ procps \ net-tools \ sudo \ wget \ curl \ which \ xauth \ dbus-x11 \ dnf -y groupinstall Xfce \ dnf -y install tigervnc-server novnc python3-websockify \ dnf clean all # 创建普通用户 RUN useradd -m user echo user:123456 | chpasswd # 赋予 sudo 权限关键 RUN echo user ALL(ALL) NOPASSWD:ALL /etc/sudoers # 拷贝启动脚本 COPY start.sh /start.sh RUN chmod x /start.sh RUN mkdir -p /home/user/.vnc \ chown -R user:user /home/user/.vnc # 暴露端口 EXPOSE 5901 6080 # 默认执行 CMD [/start.sh]2️⃣ 启动脚本 start.sh#!/bin/bash USERuser HOME/home/user DISPLAY:1 # 强制清理旧 VNC session关键 rm -rf /tmp/.X1-lock /tmp/.X11-unix/X1 rm -rf $HOME/.vnc/*.pid # 设置 VNC 密码每次启动都保证存在 mkdir -p /home/user/.vnc echo 123456 | vncpasswd -f /home/user/.vnc/passwd chown -R user:user /home/user/.vnc chmod 600 /home/user/.vnc/passwd # 写 xstartup防止被覆盖 cat $HOME/.vnc/xstartup EOF #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS export XDG_RUNTIME_DIR/tmp/runtime-user mkdir -p $XDG_RUNTIME_DIR chmod 700 $XDG_RUNTIME_DIR exec dbus-launch --exit-with-session startxfce4 EOF chown user:user $HOME/.vnc/xstartup chmod x $HOME/.vnc/xstartup # 启动 VNC前台模式更稳定 su - $USER -c vncserver :1 -geometry 1280x800 -depth 24 # 启动 noVNC必须绑定 0.0.0.0 su - $USER -c websockify --web/usr/share/novnc 0.0.0.0:6080 localhost:5901 # 保持容器运行 tail -f $HOME/.vnc/*.log三、完整实现步骤1️⃣ 安装 DockerRocky9省略2️⃣ 创建项目目录mkdir -p /opt/docker-desktop cd /opt/docker-desktop 将Dockerfile, start.sh和todesk.rpm都移动到这里3️⃣ 构建镜像构建镜像 docker build -t rocky9-xfce-vnc . 如果是重新构建镜像 docker build --no-cache -t rocky9-xfce-vnc .四、使用Docker Compose批量管理docker容器1️⃣ 创建docker-compose.yml在/opt/docker-desktop目录下创建docker-compose.ymlversion: 3.9 services: desktop1: image: rocky9-xfce-vnc container_name: desktop1 ports: - 6081:6080 - 5901:5901 restart: always desktop2: image: rocky9-xfce-vnc container_name: desktop2 ports: - 6082:6080 - 5902:5901 restart: always desktop3: image: rocky9-xfce-vnc container_name: desktop3 ports: - 6083:6080 - 5903:5901 restart: always2️⃣一键启动docker compose up -d3️⃣ 一键关闭docker compose down五、浏览器验证关闭宿主机防火墙systemctl stop firewalld1️⃣ 内网浏览器http://宿主机IP:6081http://宿主机IP:6082http://宿主机IP:6083 输入 VNC 密码123456注意是使用http不是https

相关文章:

Rocky9+ Docker + 容器内Linux桌面环境 + Web远程

一、整体架构设计Rocky9(宿主机,无GUI) │ ├── Docker │ ├── 容器1:Rocky9 XFCE noVNC ToDesk │ ├── 容器2:Rocky9 XFCE noVNC ToDesk │ └── 容器3:Rocky9 XFCE noVNC ToDes…...

天龙八部GM工具:释放单机版游戏无限潜能的终极指南

天龙八部GM工具:释放单机版游戏无限潜能的终极指南 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 你是否厌倦了在天龙八部单机版中反复刷怪升级?是否想要体验顶级装备和技能却…...

用tao-8k构建智能搜索:基于Xinference的文本向量化实战教程

用tao-8k构建智能搜索:基于Xinference的文本向量化实战教程 1. 理解tao-8k文本嵌入模型 1.1 什么是文本向量化 文本向量化是将自然语言文本转换为数值向量的过程。想象一下,就像把一本书的内容浓缩成一个独特的数字指纹,这个指纹能够捕捉书…...

情绪支持对话革命:AFlow 让大模型从一轮共情升级为长期治愈!

❝ 一句话概括,这篇论文把情绪支持对话当成一个“情绪动力学控制问题”,用 Affective Flow 约束每轮回复对下一轮情绪的影响,核心诉求是让安慰不是“好听”,而是“长期有效”。 第一阶段:识别核心概念 论文的Motivati…...

lychee-rerank-mm保姆级教程:如何用lychee debug模式调试自定义指令

lychee-rerank-mm保姆级教程:如何用lychee debug模式调试自定义指令 1. 快速了解lychee-rerank-mm lychee-rerank-mm是一个轻量级的多模态重排序工具,它能同时理解文本和图像内容,帮你把最相关的信息排到最前面。 想象一下这样的场景&…...

在线生成工具(画图类)

最近挖到一个超实用的宝藏AI网站,简直是做毕业设计、课程设计的神器!它可以免费绘制ER图、用例图、功能结构图、流程图等多种图表,操作简单不用复杂排版,一键就能快速生成。最厉害的是支持图表之间互相转化,还自带智能…...

Win11Debloat:系统深度优化实现Windows性能与隐私双重提升

Win11Debloat:系统深度优化实现Windows性能与隐私双重提升 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以简化…...

如何通过Win11Debloat实现Windows系统终极优化:隐私保护与性能提升完整指南

如何通过Win11Debloat实现Windows系统终极优化:隐私保护与性能提升完整指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各…...

EcomGPT-中英文-7B电商模型与YOLOv8联动:视频带货中的实时商品检测与描述生成

EcomGPT-中英文-7B电商模型与YOLOv8联动:视频带货中的实时商品检测与描述生成 最近在琢磨一个挺有意思的事儿:怎么让AI在直播或者短视频里,自己“看见”商品,然后“张嘴”就把卖点给讲出来。听起来有点像科幻片里的场景&#xff…...

高清高透窗纱网厂家推荐与高透窗纱网产品特点分析

高清高透窗纱网的市场前景与应用分析随着生活质量不断提高,消费者对家居环境的要求也逐步上升。高清高透窗纱网以其优异的透气性和防蚊虫性能,正日益受到欢迎。我们的市场研究表明,该产品不仅适合家庭使用,还是办公室及农业领域中…...

Realistic Vision V5.1虚拟摄影棚实操:多轮迭代生成——从草图到精修人像

Realistic Vision V5.1虚拟摄影棚实操:多轮迭代生成——从草图到精修人像 1. 项目概述 Realistic Vision V5.1虚拟摄影棚是一款基于Stable Diffusion 1.5生态顶级写实模型开发的本地化工具,专为摄影级人像生成而设计。这个工具解决了普通用户在尝试使用…...

做企业级数据库权限管理,工具应该怎么选?为什么 NineData 值得作为核心选型参考

一旦团队开始认真治理数据库权限,市面上的可选方案会一下子变多:数据管理平台、数据库 DevOps 平台、堡垒机、工单系统、甚至自建审批表单都可能被拿来比。但“谁都能做一点权限管理”和“谁更适配企业级数据库权限治理”不是一回事。如果你的目标是把申…...

AIGlasses OS Pro Java面试题解析:视觉相关算法实现

AIGlasses OS Pro Java面试题解析:视觉相关算法实现 最近有不少朋友在准备技术面试,特别是那些涉及智能硬件和视觉算法的岗位。我发现很多面试官喜欢问一些结合了实际产品场景的算法题,比如“如果让你为AIGlasses OS Pro这样的智能眼镜实现一…...

如何通过TMSpeech实现本地化语音交互:突破实时性与隐私性的技术方案

如何通过TMSpeech实现本地化语音交互:突破实时性与隐私性的技术方案 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 引言:重新定义本地化语音处理的价值边界 在数字化浪潮席卷各行各业的今天…...

收藏!AI抢人大战杀疯了:应届博士年薪500万,程序员/小白必看上车指南

2026年的AI行业,最炸裂的新闻从来不是某款新模型发布,也不是某项技术突破,而是一句足以让所有从业者震惊的消息:应届博士生年薪500万 💰 没错,就是500万!而且这绝非个例,已经成为AI…...

Step3-VL-10B效果展示:同一张图不同温度参数下——确定性OCR vs 创意描述对比

Step3-VL-10B效果展示:同一张图不同温度参数下——确定性OCR vs 创意描述对比 1. 引言:温度参数如何影响你的视觉模型体验 如果你用过Step3-VL-10B这个视觉语言模型,可能会注意到一个叫“温度”的参数。这个参数看起来有点神秘,…...

YOLOv10全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv模块引入YOLO的核心优势及解决的问题 💡💡💡问题点:YOLO在裂缝检测中面临的核心问题 1)感受野局限:标准卷积核难以捕捉裂缝的长程连续性与不规则分支结构。 2)方向性特征缺失:裂缝常沿多方向延伸,普通卷积缺乏对方向敏感的特征提取能力。 3)纹理与边缘…...

Swin2SR部署避坑指南:OpenEuler系统兼容性全解析

Swin2SR部署避坑指南:OpenEuler系统兼容性全解析 1. 为什么选择Swin2SR进行图像超分辨率重建 在数字图像处理领域,分辨率提升一直是个棘手的问题。传统方法如双线性插值或Lanczos重采样,本质上只是通过数学算法"猜测"缺失像素&am…...

基于改进自适应蚁群算法的路径规划研究

(顶刊复现)基于改进自适应蚁群算法MAACO的机器人,无人船,无人机,无人车,自动驾驶的路径规划算法,MATLAB编写,可以修改地图信息 输出如下图所示,只有一条轨迹的那张。 包括源代码和参考文献&…...

鸡尾酒排序 vs 冒泡排序:哪个更适合你的项目?(附性能对比测试)

鸡尾酒排序与冒泡排序的深度性能对比与实战选型指南 排序算法是每个开发者工具箱中的基础工具,但在实际项目中如何选择合适的排序算法却常常让人纠结。本文将深入分析两种经典排序算法——鸡尾酒排序和冒泡排序的核心差异,通过实测数据揭示它们的性能特点…...

JrkG2 Arduino库:嵌入式电机控制器的标准化通信接口

1. JrkG2 库概述:面向嵌入式电机控制的标准化通信接口JrkG2 是 Pololu 公司为其 Jrk G2 系列 USB 电机控制器(带反馈)配套开发的 Arduino 兼容库,核心目标是为嵌入式系统提供稳定、可复用、跨平台的底层通信抽象层。该库并非简单封…...

Windows服务器安全自查:3种隐藏账号检测与清理实战(附注册表操作截图)

Windows服务器安全自查:3种隐藏账号检测与清理实战指南 在服务器运维的日常工作中,安全巡检往往是最容易被忽视却又至关重要的环节。想象一下,当你负责的Windows服务器突然出现异常登录行为,或者关键数据被不明身份者访问&#xf…...

Selenium EdgeOptions参数问题终极解决指南,Android实现RecyclerView粘性头部效果,模拟微信账单列表的月份标题平移。

解决 Selenium EdgeOptions addArguments 不受支持问题 当使用 Selenium WebDriver 进行 Edge 浏览器自动化测试时,可能会遇到 EdgeOptions.addArguments 方法不受支持的问题。这通常是由于版本不兼容或配置错误导致。以下是解决此问题的几种方法: 检查 …...

ClawdBot进阶技巧:配置文件修改,自定义模型接入指南

ClawdBot进阶技巧:配置文件修改,自定义模型接入指南 1. 理解ClawdBot的架构与模型管理 ClawdBot是一个基于vLLM后端的个人AI助手,它的核心优势在于允许用户完全自定义模型接入。与大多数预封装AI应用不同,ClawdBot将模型管理与应…...

【稀缺首发】工信部《工业边缘智能网关白皮书》未公开的Python实现范式:动态协议插件热加载、设备影子同步、断网续传原子性保障(含Gitee星标开源库链接)

第一章:工业物联网 Python 数据采集网关开发在工业物联网(IIoT)场景中,数据采集网关是连接现场设备(如PLC、传感器、RTU)与云平台的关键枢纽。Python 凭借其丰富的生态库(如 pyModbus、pymodbus…...

09 - 《Genesis资料处理》- 高效文件导出技巧与实战

1. Genesis文件导出基础操作指南 第一次接触Genesis软件的文件导出功能时,我也被那一堆参数选项搞得头晕眼花。经过几个项目的实战,我发现只要掌握几个关键步骤,就能轻松搞定各种导出需求。咱们先从最基础的电路层导出说起。 打开Genesis后&a…...

智能简历筛选系统:如何用 AI 技术让招聘效率快速提升?

在 2026 年的招聘市场中,一个中等规模企业发布一个热门岗位,72 小时内收到 500 份简历已是常态。HR 团队面对海量简历,逐份查看、手动比对、反复沟通——这套传统流程正在吞噬大量本该用于人才评估和战略决策的宝贵时间。智能简历筛选系统的出…...

Dify + LLM网关 + 向量库三级链路超时 cascading failure?(全链路Trace追踪图谱+OpenTelemetry注入实操)

第一章:Dify Multi-Agent 协同工作流 性能调优指南Dify 的 Multi-Agent 协同工作流在复杂业务场景中展现出强大扩展性,但默认配置下易因 Agent 间高频通信、重复推理与上下文冗余导致延迟上升与资源争用。性能调优需聚焦于消息路由效率、LLM 调用粒度控制…...

XUnity.AutoTranslator完全指南:如何为Unity游戏实现实时多语言翻译

XUnity.AutoTranslator完全指南:如何为Unity游戏实现实时多语言翻译 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是一款功能强大的Unity游戏实时翻译插件&#xff0c…...

突破三大系统壁垒:跨平台视频播放器如何重新定义多端体验

突破三大系统壁垒:跨平台视频播放器如何重新定义多端体验 【免费下载链接】zyfun 跨平台桌面端视频资源播放器,免费高颜值. 项目地址: https://gitcode.com/gh_mirrors/zy/zyfun 在数字娱乐日益碎片化的今天,用户面临着一个普遍痛点:同…...