Webtop 是由 LinuxServer.io 团队开发的 Docker 镜像,提供基于 Alpine、Ubuntu、Fedora 和 Arch 等操作系统的完整桌面环境,支持多种桌面环境(如 XFCE、KDE、MATE 等),可通过任何现代 Web 浏览器访问。该镜像旨在为用户提供便捷的远程桌面体验,适用于需要通过浏览器快速访问图形化桌面环境的场景。
该镜像通过 Docker Manifest 支持多平台,直接拉取 lscr.io/linuxserver/webtop:latest 即可获取对应架构的镜像,也可通过标签指定具体架构:
| 架构 | 支持状态 | 标签格式 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ | - |
镜像提供多种版本标签,对应不同操作系统和桌面环境组合:
| 标签 | 支持状态 | 描述 |
|---|---|---|
| latest | ✅ | XFCE (Alpine) |
| ubuntu-xfce | ✅ | XFCE (Ubuntu) |
| fedora-xfce | ✅ | XFCE (Fedora) |
| arch-xfce | ✅ | XFCE (Arch) |
| debian-xfce | ✅ | XFCE (Debian) |
| alpine-kde | ✅ | KDE (Alpine) |
| ubuntu-kde | ✅ | KDE (Ubuntu) |
| fedora-kde | ✅ | KDE (Fedora) |
| arch-kde | ✅ | KDE (Arch) |
| debian-kde | ✅ | KDE (Debian) |
| alpine-mate | ✅ | MATE (Alpine) |
| ubuntu-mate | ✅ | MATE (Ubuntu) |
| fedora-mate | ✅ | MATE (Fedora) |
| arch-mate | ✅ | MATE (Arch) |
| debian-mate | ✅ | MATE (Debian) |
| alpine-i3 | ✅ | i3 (Alpine) |
| ubuntu-i3 | ✅ | i3 (Ubuntu) |
| fedora-i3 | ✅ | i3 (Fedora) |
| arch-i3 | ✅ | i3 (Arch) |
| debian-i3 | ✅ | i3 (Debian) |
| alpine-openbox | ✅ | Openbox (Alpine) |
| ubuntu-openbox | ✅ | Openbox (Ubuntu) |
| fedora-openbox | ✅ | Openbox (Fedora) |
| arch-openbox | ✅ | Openbox (Arch) |
| debian-openbox | ✅ | Openbox (Debian) |
| alpine-icewm | ✅ | IceWM (Alpine) |
| ubuntu-icewm | ✅ | IceWM (Ubuntu) |
| fedora-icewm | ✅ | IceWM (Fedora) |
| arch-icewm | ✅ | IceWM (Arch) |
| debian-icewm | ✅ | IceWM (Debian) |
Webtop 桌面环境可通过以下地址访问:
[***][***]现代 GUI 桌面应用(包括部分终端)可能与 Docker 默认的 syscall 限制存在兼容性问题,需添加以下参数以允许必要的系统调用:
bash--security-opt seccomp=unconfined
与其他容器不同,Webtop 桌面环境不支持通过 Docker 直接升级。升级容器时,用户主目录(/config)的内容会保留,但系统级安装的应用将丢失。如需保持系统级应用,建议通过操作系统自带的包管理器(如 apt、apk、dnf、pacman)定期更新。
该镜像基于 Docker Baseimage KasmVNC 构建,支持以下可选配置:
| 变量名 | 描述 |
|---|---|
| CUSTOM_PORT | HTTP 监听端口(默认 3000) |
| CUSTOM_HTTPS_PORT | HTTPS 监听端口(默认 3001) |
| CUSTOM_USER | HTTP 基本认证用户名(默认 abc) |
| PASSWORD | HTTP 基本认证密码(默认 abc,不设置则禁用认证) |
| SUBFOLDER | 反向代理子路径(需包含前后斜杠,如 /webtop/) |
| TITLE | 浏览器页面标题(默认 "KasmVNC Client") |
| FM_HOME | 文件管理器默认目录(默认 /config) |
| START_DOCKER | 设为 false 时,特权模式下不自动启动 DinD(Docker-in-Docker) |
| DRINODE | 指定 DRI3 GPU 加速设备(如 /dev/dri/renderD128) |
| 参数 | 描述 |
|---|---|
--privileged | 启用 DinD 环境,可配合 -v /home/user/docker-data:/var/lib/docker 提升性能 |
-v /var/run/docker.sock:/var/run/docker.sock | 挂载主机 Docker 套接字,允许容器内操作主机 Docker |
--device /dev/dri:/dev/dri | 挂载主机 GPU 设备(仅支持开源驱动,如 Intel、AMDGPU、Nouveau) |
通过 universal-internationalization Docker Mod 实现非英语语言支持,需指定 ISO 639 语言代码(如中文 zh_CN.UTF-8、德语 de_DE.UTF-8)。完整语言代码列表见 LinuxServer Mods 文档。
配置示例(中文支持):
bash-e DOCKER_MODS=linuxserver/mods:universal-internationalization -e LC_ALL=zh_CN.UTF-8
启用后,在 Web 界面的 "设置" 中开启 "IME Input Mode",即可使用非英文输入法。
通过将 "Stream Quality" 预设改为 "Lossless",可实现浏览器中的无损图像传输(高帧率)。非本地访问时需使用 HTTPS(3001 端口),或通过反向代理转发 HTTP 端口时添加以下 headers:
Proxy-Connection: keep-alive Connection: keep-alive
yaml--- version: "2.1" services: webtop: image: lscr.io/linuxserver/webtop:latest # 可替换为特定标签,如 ubuntu-xfce container_name: webtop security_opt: - seccomp:unconfined # 解决 GUI 应用 syscall 兼容性问题 environment: - PUID=1000 # 用户 ID(通过 `id your_user` 获取) - PGID=1000 # 组 ID(通过 `id your_user` 获取) - TZ=Asia/Shanghai # 时区(如 Asia/Shanghai) - SUBFOLDER=/ # 反向代理子路径(如无需则保持默认) - TITLE=Webtop桌面 # 浏览器页面标题 volumes: - /path/to/data:/config # 持久化用户数据(替换为实际路径) - /var/run/docker.sock:/var/run/docker.sock # 可选,挂载 Docker 套接字 ports: - 3000:3000 # HTTP 端口 - 3001:3001 # HTTPS 端口 devices: - /dev/dri:/dev/dri # 可选,挂载 GPU 设备(Linux 主机) shm_size: "1gb" # 防止现代浏览器崩溃(建议至少 1GB) restart: unless-stopped
bashdocker run -d \ --name=webtop \ --security-opt seccomp=unconfined \ # 解决 GUI 应用 syscall 兼容性问题 -e PUID=1000 \ # 用户 ID -e PGID=1000 \ # 组 ID -e TZ=Asia/Shanghai \ # 时区 -e SUBFOLDER=/ \ # 反向代理子路径 -e TITLE=Webtop桌面 \ # 浏览器页面标题 -p 3000:3000 \ # HTTP 端口映射 -p 3001:3001 \ # HTTPS 端口映射 -v /path/to/data:/config \ # 用户数据持久化 -v /var/run/docker.sock:/var/run/docker.sock \ # 可选,挂载 Docker 套接字 --device /dev/dri:/dev/dri \ # 可选,挂载 GPU 设备 --shm-size="1gb" \ # 共享内存大小 --restart unless-stopped \ lscr.io/linuxserver/webtop:latest # 镜像标签
| 参数 | 功能描述 |
|---|---|
-p 3000 | Web 桌面 HTTP 端口 |
-p 3001 | Web 桌面 HTTPS 端口 |
-e PUID=1000 | 用户 ID,用于权限映射(通过 id your_user 获取) |
-e PGID=1000 | 组 ID,用于权限映射(通过 id your_user 获取) |
-e TZ=Asia/Shanghai | 时区设置(完整列表见 时区数据库) |
-e SUBFOLDER=/ | 反向代理子路径(需包含前后斜杠,如 /webtop/) |
-e TITLE=Webtop | 浏览器页面标题 |
-v /config | 用户主目录(存放配置和数据) |
-v /var/run/docker.sock | 挂载主机 Docker 套接字,允许容器内使用 Docker |
--device /dev/dri | 挂载 GPU 设备以支持图形加速(仅 Linux 主机,需开源驱动) |
--shm-size=1gb | 共享内存大小,建议至少 1GB 以避免浏览器崩溃 |
--security-opt seccomp=unconfined | 禁用 seccomp 限制,解决 GUI 应用兼容性问题 |
通过 FILE__ 前缀可从文件加载环境变量,例如:
bash-e FILE__PASSWORD=/run/secrets/webtop_password
上述命令会将 /run/secrets/webtop_password 文件内容作为 PASSWORD 环境变量的值。
通过 -e UMASK=022 可覆盖容器内服务的默认 umask 设置。注意 umask 是权限掩码(减法运算),而非直接设置权限,详细说明见 umask ***。
使用 -v 挂载卷时,需确保主机目录权限与容器内 PUID/PGID 匹配,避免权限问题。通过以下命令获取当前用户的 UID/GID:
bashid your_user
示例输出:
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
该镜像支持 LinuxServer.io 提供的 Docker Mods,以扩展功能:
使用方法:通过 -e DOCKER_MODS=mod1,mod2 指定 Mods,例如启用国际化支持:
bash-e DOCKER_MODS=linuxserver/mods:universal-internationalization
进入容器 shell:
bashdocker exec -it webtop /bin/bash
实时查看日志:
bashdocker logs -f webtop
查看容器版本:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' webtop
查看镜像版本:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/webtop:latest
Webtop 镜像为静态版本,需通过更新镜像并重建容器来升级应用。
更新镜像:
bashdocker-compose pull webtop # 更新单个镜像 # 或 docker-compose pull # 更新所有镜像
重建容器:
bashdocker-compose up -d webtop # 重建单个容器 # 或 docker-compose up -d # 重建所有容器
清理旧镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/webtop:latest
停止并删除旧容器:
bashdocker stop webtop docker rm webtop
用原参数重建容器(/config 目录会保留数据)
仅用于忘记原始运行参数时的一次性更新:
bashdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once webtop
如需自定义镜像,可通过以下步骤本地构建:
bashgit clone [***] cd docker-webtop docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/webtop:latest .
ARM 架构构建:在 x86_64 主机上需先注册 QEMU 模拟器:
bashdocker run --rm --privileged multiarch/qemu-user-static:register --reset
然后使用对应架构的 Dockerfile(如 -f Dockerfile.aarch64)。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429