如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 和我们的公告 此处 获取。
只需拉取 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 |
可通过以下地址访问应用:
此镜像默认使用自签名证书。这自然意味着协议为 https。如果您使用的反向代理会验证证书,则需要为容器禁用此检查。
现代 GUI 桌面应用可能与最新的 Docker 系统调用限制存在兼容性问题。在具有较旧内核或 libseccomp 版本的主机上,您可以使用带有 --security-opt seccomp=unconfined 设置的 Docker 来允许这些系统调用。
[!WARNING] 此容器提供对主机系统的特权访问。除非已正确配置安全措施,否则不要将其暴露在互联网上。
完整功能需要 HTTPS。 现代浏览器功能(如用于视频和音频的 WebCodecs)在不安全的 HTTP 连接上无法正常工作。
默认情况下,此容器没有身份验证。可选的 CUSTOM_USER 和 PASSWORD 环境变量可启用基本 HTTP 身份验证,这仅适用于在受信任的本地网络上保护容器。对于互联网暴露,我们强烈建议将容器放置在反向代理(如 https://github.com/linuxserver/docker-swag%EF%BC%89%E4%B9%8B%E5%90%8E%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%E5%BC%BA%E5%A4%A7%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E6%9C%BA%E5%88%B6%E3%80%82
Web 界面包含一个具有无密码 sudo 访问权限的终端。任何有权访问 GUI 的用户都可以在容器内获得 root 控制权、安装任意软件并探测您的本地网络。
虽然通常不推荐,但某些遗留环境(特别是那些使用较旧硬件或过时 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 显卡。
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,在 Unraid OS 启动项的 append 行末尾添加 nvidia-drm.modeset=1 nvidia_drm.fbdev=1。硬件初始化:在无显示器系统中,Nvidia 显卡需插入物理虚拟显示插头(dummy plug),以确保 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= | 所有桌面镜像推荐使用 |
docker exec -it webtop /bin/bash
docker logs -f webtop
docker inspect -f '{{ index .Config.Labels "build_version" }}' webtop
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/webtop:latest
我们的大多数镜像是静态的、版本化的,需要更新镜像并重新创建容器才能更新内部的应用程序。除少数例外情况(相关 readme.md 中已注明),我们不建议也不支持在容器内更新应用程序。请参考上文的应用程序设置部分,了解该镜像是否推荐此操作。
以下是更新容器的说明:
docker-compose pull
docker-compose pull webtop
docker-compose up -d
docker-compose up -d webtop
docker image prune
docker pull lscr.io/linuxserver/webtop:latest
docker stop webtop
docker rm webtop
/config 文件夹和设置将被保留)docker image prune
[!TIP] 我们推荐使用 Diun 接收更新通知。不建议也不支持使用其他无人值守自动更新容器的工具。
如果您出于开发目的或仅为了自定义逻辑而需要对这些镜像进行本地修改:
git clone https://github.com/linuxserver/docker-webtop.git
cd docker-webtop
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/webtop:latest .
使用 lscr.io/linuxserver/qemu-static 可以在 x86_64 硬件上构建 ARM 变体,反之亦然
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
注册后,您可以使用 -f Dockerfile.aarch64 指定要使用的 Dockerfile。
来自真实用户的反馈,见证轩辕镜像的优质服务