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

x-cmd mod x webtop - 在 Docker 轻松运行多款 Linux 桌面,支持中文,浏览器访问!

目录
  • Webtop 模块介绍
    • 设计场景
    • 主要功能
    • 安全性
    • 在容器中安装其他桌面软件
    • 管理容器的 HOME 目录
      • 端口和容器命名规则
      • HOME 目录持久化设计
      • 防冲突和混淆
      • proot-apps 软件
    • 其他问题
      • 远程桌面关键用户体验
      • 为什么不采用 Kasm 镜像?
    • 未来计划

Webtop 模块介绍

Webtop 模块通过整合开源远程 Linux 桌面方案 Kasm 和 LinuxServer 提供的 linuxserver/webtop 容器镜像,极大地简化了 Webtop 的部署和使用。该模块特别针对中文用户进行了优化,并提供了一些增强功能,提高用户体验。

在这里插入图片描述

设计场景

  • 在本地轻松体验各种 Linux 发行版和桌面环境。
  • 在容器化的桌面环境中使用浏览器作为主要工作工具。

主要功能

  • 中文支持: 自动构建预装 CJK(中文、日文、韩文)字体的镜像,无需每次启动容器时重新安装字体,显著加快启动速度。
  • 简化操作: 通过 脚本库提供交互式 TUI 和命令补全功能,提升用户体验。
  • 多种发行版和桌面环境: 轻松体验不同的 Linux 发行版和桌面环境。
  • 浏览器优先: 针对容器桌面中以浏览器为主要工具的使用场景进行了优化。

安全性

默认情况下,Webtop 模块仅允许来自 localhost 的访问,这意味着其他主机无法直接通过 http://<IP>:<PORT> 访问容器桌面。因此,为简化使用,默认不强制设置容器密码。

如果需要限制其他用户的访问,请使用 --password <password> 选项设置密码。

在容器中安装其他桌面软件

为了保护宿主机安全,Webtop 容器的权限受到一定限制,Flathub、Snap 和 AppImage 等应用管理器可能无法正常使用。

可以通过以下方式安装软件:

  • 系统包管理器: 使用系统自带的包管理器,例如 apt install flameshot
  • proot-apps (实验性): LinuxServer 提供的 proot-apps 工具可安装更多桌面应用(如 proot-apps install vscode),但该方案占用空间较大,计划在未来改进并提供更完善的支持。

管理容器的 HOME 目录

如果需要备份或克隆容器环境的 HOME 目录,需要了解我们的端口、容器名及 HOME 数据映射设计。

端口和容器命名规则

Webtop 模块引入了一个惯例,每一类的系统-桌面都有一个固定的端口前缀:

例如:

  • 400xx —— ubuntu-kde
  • 401xx —— ubuntu-mate
  • 410xx —— debian-kde
  • 411xx —— debian-mate

假设用户同时启动的本地容器桌面最多不超过 10 个:

  • 第一个 ubuntu-kde 的端口为 40000,第二个为 40010,以此类推。
  • 第一个 debian-mate 的端口为 41100,第二个为 41110

容器命名为 x-webtop-<PORT>

HOME 目录持久化设计
  • 默认映射: 容器的 HOME 目录($HOME 映射为 /config)自动映射到宿主机文件系统。
  • UID 和 GID 保持一致: 容器用户的 UID 和 GID 与宿主机一致,确保文件权限匹配。

重启不丢失 HOME 目录数据

除非宿主机的 HOME 数据被显式删除,每次重启容器时,只要容器名相同,上次的 HOME 数据都会自动映射到新容器。这使得以下设置得以保留:

  • 桌面配置(如壁纸和主题)
  • 已安装的 和 proot-apps 软件
防冲突和混淆

同一系列的系统/桌面使用相同系列的端口和容器名,确保不同系统/桌面的配置数据不会混杂在一个 HOME 目录中。

proot-apps 软件

proot-apps 是 LinuxServer 提供的 容器桌面软件管理器。

与 一样,都是将软件安装用户空间中,这样就不需要特权和修改全局依赖。下次只要加载同样的 HOME 目录,软件就会在。唯一的问题是,proot 的底层技术导致软件体积非常庞大。

该方案提供软件体积都比较大,我们正在积极探索和改进相关技术,并计划在未来提供更完善的支持。

其他问题

远程桌面关键用户体验

容器化桌面应用要获得良好体验,必须解决以下关键问题,而 Kasm 技术在某些方面表现出色:

  1. 中文输入:本地中文输入法的支持至关重要。
  2. 视频播放流畅度。
  3. 音频播放功能。

问题 1:我是在十一假期期间偶然发现需要在设置中激活中文输入。

问题 3:我在 Kasm 版本中未找到音频播放的解决方案,但在 Webtop 镜像中却很容易启用。

为什么不采用 Kasm 镜像?
  • 项目开发策略是先开发 Kasm 模块,再开发 Webtop 模块。
  • Kasm 镜像的设计假设是面向远程服务器,因此默认需要配置证书、HTTPS 和密码。而 的应用场景更倾向于本地运行,例如测试、沙盒和开发环境。
  • Webtop 提供的镜像更符合 的本地化应用理念。此外,Webtop 的作者也通过 proot-apps 尝试解决 Kasm 和 Webtop 都面临的桌面软件安装问题。
  • Kasm 模块目前尚未在 的公开版本中发布,未来会以不同的定位进行开发和发布。

未来计划

  • 容器启动时自动安装本地版本的 。
  • 增加 clonebackup 等子命令。
  • 提供安全共享本地桌面的功能。
  • 增加更多自定义选项。
  • 优化 proot-apps 的空间占用。
  • 支持生成 Docker Compose 文件。
  • 提供 Webtop 服务器方案(可能)。

这个版本更加清晰地介绍了 Webtop 模块的功能、安全策略、软件安装方法以及未来计划,同时提供用户体验导向的实用建议。

更多内容请查阅 : mod/webtop

转载请标明原文链接 :https://www…com/mod/webtop


http://www.kler.cn/a/445638.html

相关文章:

  • Linux 使用的小细节
  • 介绍 Html 和 Html 5 的关系与区别
  • JS设计模式之中介者模式
  • 使用C++构建实战项目:一个简单的任务管理系统
  • 小红书飞书素材库 | AI改写 | 无水印下载 | 多维表格 | 采集同步 | 影刀RPA
  • 唯品会Android面试题及参考答案
  • 中企出海-德国会计准则和IFRS间的差异
  • 京准电钟:电厂自控NTP时间同步服务器技术方案
  • YOLOv8全解析:高效、精准的目标检测新时代——创新架构与性能提升
  • MySQL怎么导出数据库数据
  • Redis 到 Redis 数据迁移同步
  • 指令v-on 调用传参
  • leetcode:3285. 找到稳定山的下标(python3解法)
  • pdf文件中的表格无损提取方案(pdf转Excel),非OCR
  • Spring Boot中Bean的 构造器注入、字段注入和方法注入
  • 【网络云计算】2024第51周-每日【2024/12/17】小测-理论-解析
  • 蓝桥杯刷题——day8
  • [RocketMQ] 发送重试机制与消费重试机制~
  • JDK21执行java -jar xxx.jar 文件时 “An unexpected error occurred” 问题处理
  • uniapp 自定义图标03
  • vscode容器调试使用-1.调试使用深入
  • VSCode:Remote-SSH插件安装使用 -- 在VSCode中使用SSH
  • Gin-vue-admin(4):项目创建前端一级页面和二级页面
  • Git 实用命令总结指南
  • 如何在 Debian 12 上安装 Chef Infra Server 自动化运维工具
  • springboot检测配置是否存在,如果存在则返回,不存在则提示新增