如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://linuxserver.io 团队为您带来另一款容器发布,其特点包括:
您可以通过以下渠道找到我们:
https://github.com/linuxserver/docker-webtop - 基于 Alpine、Ubuntu、Fedora 和 Arch 的容器,包含官方支持的完整桌面环境,可通过任何现代 Web 浏览器访问。
我们利用 docker manifest 实现多平台支持。更多信息可从 docker https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list 和我们的公告 https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/ 获取。
只需拉取 lscr.io/linuxserver/webtop:latest 即可获取适合您架构的正确镜像,但您也可以通过标签拉取特定架构的镜像。
此镜像支持的架构如下:
| 架构 | 可用性 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-\ |
| arm64 | ✅ | arm64v8-\ |
此镜像提供多种版本,可通过标签获取。请仔细阅读描述,并在使用不稳定或开发标签时谨慎操作。
| 标签 | 可用性 | 描述 |
|---|---|---|
| latest | ✅ | XFCE Alpine *支持 Wayland |
| alpine-i3 | ✅ | i3 Alpine *支持 Wayland |
| alpine-kde | ✅ | KDE Alpine *仅 Wayland |
| alpine-mate | ✅ | MATE Alpine |
| arch-i3 | ✅ | i3 Arch *支持 Wayland |
| arch-kde | ✅ | KDE Arch *支持 Wayland |
| arch-mate | ✅ | MATE Arch |
| arch-xfce | ✅ | XFCE Arch *支持 Wayland |
| debian-i3 | ✅ | i3 Debian *支持 Wayland |
| debian-kde | ✅ | KDE Debian |
| debian-mate | ✅ | MATE Debian |
| debian-xfce | ✅ | XFCE Debian |
| fedora-i3 | ✅ | i3 Fedora *支持 Wayland |
| fedora-kde | ✅ | KDE Fedora *支持 Wayland |
| fedora-mate | ✅ | MATE Fedora |
| fedora-xfce | ✅ | XFCE Fedora |
| ubuntu-i3 | ✅ | i3 Ubuntu *支持 Wayland |
| ubuntu-kde | ✅ | KDE Ubuntu *仅 Wayland |
| ubuntu-mate | ✅ | MATE Ubuntu |
| ubuntu-xfce | ✅ | XFCE Ubuntu *支持 Wayland |
| dev | ✅ | KDE Ubuntu *当前 Selkies 开发头部版本 |
可通过以下地址访问应用:
此镜像默认使用自签名证书。这自然意味着协议为 https。
如果您使用的反向代理会验证证书,则需要https://docs.linuxserver.io/faq#strict-proxy。
现代 GUI 桌面应用可能与最新的 Docker 系统调用限制存在兼容性问题。在具有较旧内核或 libseccomp 版本的主机上,您可以使用 Docker 的 --security-opt seccomp=unconfined 设置来允许这些系统调用。
[!WARNING] 此容器提供对主机系统的特权访问。除非已正确配置安全措施,否则不要将其暴露在互联网上。
完整功能需要 HTTPS。 现代浏览器功能(如用于视频和音频的 WebCodecs)在不安全的 HTTP 连接下无法正常工作。
默认情况下,此容器没有身份验证。可选的 CUSTOM_USER 和 PASSWORD 环境变量可启用基本 HTTP 身份验证,这仅适用于在受信任的本地网络上保护容器。对于互联网暴露,我们强烈建议将容器置于反向代理(如 https://github.com/linuxserver/docker-swag)之后,并使用强大的身份验证机制。
Web 界面包含一个具有无密码 sudo 访问权限的终端。任何有权访问 GUI 的用户都可以在容器内获得 root 控制权、安装任意软件并探测您的本地网络。
虽然通常不推荐,但某些 legacy 环境(特别是那些使用较旧硬件或过时 Linux 发行版的环境)可能需要停用标准 seccomp 配置文件才能运行容器化桌面软件。这可以通过使用 --security-opt seccomp=unconfined 参数实现。务必仅在绝对必要时使用此选项,因为它会禁用 Docker 的关键安全层,增加容器逃逸漏洞的风险。
如果您注意到文本模糊(尤其是黑色背景上的浅色文本),可以通过在侧边栏中启用 FullColor 4:4:4 编码或使用 jpeg 编码模式,向浏览器发送真正的 8 位颜色。
硬件加速注意事项: 目前,只有 Nvidia GPU 支持在 Zero Copy 模式下编码此颜色配置文件。如果在 Intel 或 AMD GPU 上启用 FullColor 4:4:4,系统将回退到 CPU 编码。这会迫使 CPU 从 GPU 读取像素,导致性能显著下降。
我们已将桌面容器从 X11 过渡到现代 Wayland 栈,现在 Wayland 是默认选项。
硬件回退注意事项: 在 x86_64 架构上,Wayland 栈需要支持 AVX2 的处理器(Intel Haswell 代或更新版本)。如果您的处理器缺少 AVX2(如较旧的 CPU 或某些低端赛扬处理器),容器将自动回退到 X11。
重要: X11 的 GPU 加速支持已弃用。未来硬件加速的开发将完全专注于 Wayland 栈。
如果遇到兼容性问题并需要手动禁用 Wayland(强制回退到 X11),可以通过设置以下环境变量实现:
-e PIXELFLUX_WAYLAND=false为什么选择 Wayland?
GPU 配置
要在 Wayland 模式下使用硬件加速,我们需要区分用于渲染(3D 应用/桌面)和编码(视频流)的显卡。
配置变量:
DRINODE:用于渲染(EGL)的 GPU 路径。DRI_NODE:用于编码(VAAPI/NVENC)的 GPU 路径。如果两个变量指向同一设备,容器将自动启用零复制(Zero Copy)编码,显著降低 CPU 使用率和延迟。如果它们设置为不同设备,则一个用于渲染,一个用于编码,并通过 CPU 回读数据。
您也可以使用环境变量 AUTO_GPU=true,设置后容器中检测到的第一张显卡(例如 /dev/dri/renderD128)将被使用并配置为零复制模式。
Intel 和 AMD(开源驱动)
适用于 Intel 和 AMD GPU。
devices:
- /dev/dri:/dev/dri
environment:
- PIXELFLUX_WAYLAND=true
# 可选:若存在多个设备,指定设备(例如:/dev/dri/renderD129)
- DRINODE=/dev/dri/renderD128
- DRI_NODE=/dev/dri/renderD128
Nvidia(专有驱动)
[!NOTE] Nvidia 支持不适用于基于 Alpine 的镜像。
前提条件:
驱动: 需要580 或更高版本的专有驱动。重要的是,您应使用直接从 Nvidia 网站下载的 .run 文件安装驱动。
内核参数: 必须在主机引导加载程序中设置 nvidia-drm.modeset=1 nvidia_drm.fbdev=1。
/etc/default/grub 并将参数添加到现有的 GRUB_CMDLINE_LINUX_DEFAULT 行:GRUB_CMDLINE_LINUX_DEFAULT=" nvidia-drm.modeset=1 nvidia_drm.fbdev=1"
然后运行以下命令应用更改:
sudo update-grub
/boot/syslinux/syslinux.cfg,并将 nvidia-drm.modeset=1 nvidia_drm.fbdev=1 添加到 Unraid OS 启动项的 append 行末尾。硬件初始化: 在无头系统上,Nvidia 显卡需要在 GPU 上插入物理虚拟插头,以便 DRM 正确初始化。
Docker 运行时: 配置主机 Docker 守护进程以使用 Nvidia 运行时:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Compose 配置:
---
services:
webtop:
image: lscr.io/linuxserver/webtop:latest
environment:
- PIXELFLUX_WAYLAND=true
# 确保指向运行时注入的渲染节点(通常为 renderD128)
- DRINODE=/dev/dri/renderD128
- DRI_NODE=/dev/dri/renderD128
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [compute,video,graphics,utility]
--gpus all --runtime nvidia 添加到额外参数中。此容器与 SealSkin 兼容。
SealSkin 是一个自托管的客户端-服务器平台,提供安全认证和协作功能,同时使用浏览器扩展拦截用户操作(如点击链接或下载文件),并将其重定向到运行在远程服务器上的安全、隔离的应用环境。
此容器基于 https://github.com/linuxserver/docker-baseimage-selkies。
点击展开:可选环境变量
| 变量 | 描述 |
|---|---|
| PIXELFLUX_WAYLAND | 如果设置为 true,容器将以 Wayland 模式初始化,运行 https://github.com/Smithay/smithay 和 Labwc,同时启用 GPU 零复制编码 |
| SELKIES_DESKTOP | 如果设置为 true 且处于 Wayland 模式,将使用 labwc 初始化一个简单面板 |
| CUSTOM_PORT | 容器监听 HTTP 的内部端口,如需更改默认端口 3000 可设置此变量 |
| CUSTOM_HTTPS_PORT | 容器监听 HTTPS 的内部端口,如需更改默认端口 3001 可设置此变量 |
| CUSTOM_WS_PORT | 容器监听 WebSocket 的内部端口,如需更改默认端口 8082 可设置此变量 |
| CUSTOM_USER | HTTP 基本认证用户名,默认值为 abc |
| DRI_NODE | 编码 GPU:启用 VAAPI/NVENC 流编码并使用指定设备(例如 /dev/dri/renderD128) |
| DRINODE | 渲染 GPU:指定用于 EGL/3D 加速的 GPU(例如 /dev/dri/renderD129) |
| AUTO_GPU | 如果设置为 true 且处于 Wayland 模式,将自动使用第一个可用 GPU 进行编码和渲染(例如 /dev/dri/renderD128) |
| PASSWORD | HTTP 基本认证密码,默认值为 abc。若未设置,则不进行认证 |
| SUBFOLDER | 应用的子文件夹(若运行子文件夹反向代理),需包含前后斜杠(例如 /subfolder/) |
| TITLE | 网页浏览器中显示的页面标题,默认值为 "Selkies" |
| DASHBOARD | 允许用户设置仪表板。选项:selkies-dashboard、selkies-dashboard-zinc、selkies-dashboard-wish |
| FILE_MANAGER_PATH | 修改默认上传/下载文件路径,路径必须对 abc 用户有适当权限 |
| START_DOCKER | 如果设置为 false,具有特权的容器将不会自动启动 DinD Docker 配置 |
| DISABLE_IPV6 | 如果设置为 true 或任何值,将禁用 IPv6 |
| LC_ALL | 设置容器运行的语言(例如 fr_FR.UTF-8 ar_AE.UTF-8) |
| NO_DECOR | 如果设置,应用将无窗口边框运行(用于 PWA)。(可通过 Ctrl+Shift+d 启用/禁用边框) |
| NO_FULL | 使用 openbox 时不自动全屏应用 |
| NO_GAMEPAD | 禁用用户空间游戏手柄插入程序注入 |
| DISABLE_ZINK | 如果检测到显卡,不设置 Zink 环境变量(用户空间应用将使用 CPU 渲染) |
| DISABLE_DRI3 | 如果检测到显卡,不使用 DRI3 加速(用户空间应用将使用 CPU 渲染) |
| MAX_RES | 设置容器的最大分辨率,默认值为 16k 15360x8640 |
| WATERMARK_PNG | 容器内水印 PNG 的完整路径(例如 /usr/share/selkies/www/icon.png) |
| WATERMARK_LOCATION | 流上绘制图像的位置(选项见下文) |
WATERMARK_LOCATION 选项:
点击展开:可选运行配置(DinD 和 GPU 挂载)
要以其他语言启动桌面会话,请设置LC_ALL环境变量。例如:
-e LC_ALL=zh_CN.UTF-8 - 中文-e LC_ALL=ja_JP.UTF-8 - 日文-e LC_ALL=ko_KR.UTF-8 - 韩文-e LC_ALL=ar_AE.UTF-8 - 阿拉伯文-e LC_ALL=ru_RU.UTF-8 - 俄文-e LC_ALL=es_MX.UTF-8 - 西班牙语(拉丁美洲)-e LC_ALL=de_DE.UTF-8 - 德文-e LC_ALL=fr_FR.UTF-8 - 法文-e LC_ALL=nl_NL.UTF-8 - 荷兰语-e LC_ALL=it_IT.UTF-8 - 意大利语容器通过运行时传递的参数进行配置(如上文所述)。这些参数用冒号分隔,分别表示:。例如,-p 8080:80会将容器内部的80端口暴露出来,使其可通过主机IP在外部的8080端口访问。
| 参数 | 功能 |
|---|---|
-p 3000:3000 | Web桌面GUI HTTP,必须进行代理 |
-p 3001:3001 | Web桌面GUI HTTPS |
-e PUID=1000 | 用户ID - 详见下方说明 |
-e PGID=1000 | 组ID - 详见下方说明 |
-e TZ=Etc/UTC | 指定要使用的时区,参见此列表。 |
-v /config | abc用户的主目录 |
--shm-size= | 所有桌面镜像推荐使用。 |
来自真实用户的反馈,见证轩辕镜像的优质服务