云服务器、VPS、家用 NAS 大多是 纯命令行 Linux——没有显示器、没有桌面环境,装软件、管文件、跑带 GUI 的工具只能靠 SSH。给宿主机装一套 GNOME / KDE?又占内存又难维护,还可能和现有服务抢资源。
Webtop 是 LinuxServer.io 出品的 浏览器远程桌面:Docker 起一个容器,里面跑完整 Linux 桌面,你在 本机浏览器 里打开就是图形界面——宿主机无需安装任何桌面,服务器照样 headless 跑 Nginx、MySQL、Redmine。
本文带你完成 Webtop Docker Compose 部署:镜像加速拉取、编写 docker-compose.yml、HTTPS 登录、文件管理、终端与内置浏览器——全程零基础可跟做,文末 FAQ 含 3000 端口冲突 与 AVX2 排错。
一、Webtop 是什么?
Webtop 是 LinuxServer.io 维护的 容器化 Linux 桌面,基于 Selkies 技术把桌面画面编码后通过 Web 推流到浏览器。核心特点:
| |
|---|
| 打开 https://服务器IP:端口 即可操作完整桌面,无需 VNC 客户端 |
| |
| |
| |
| /config |
典型场景:云服务器临时跑带 GUI 的安装向导;内网运维图形化浏览日志;开发测试隔离桌面软件;老机器按需 docker compose up 即用即关。
与 VNC 的区别:Webtop 零客户端,有浏览器就行;适合按需启动,不建议 7×24 常驻。
浏览器中的 XFCE 桌面:部署成功后,宿主机无需安装图形界面图 1:浏览器里就是完整 Linux 桌面
二、为什么不在宿主机装桌面?
| | |
|---|
| | |
| | |
| Docker Webtop | 宿主机仍 headless;按需启停;与业务容器隔离 | |
本文实测:Ubuntu 24.04 上已跑 Redmine(占用 3000 端口),Webtop 用 13000 / 13001 映射,互不干扰。
三、环境要求
| |
|---|
| |
| 已安装 Docker 与 Docker Compose V2 |
| |
| 双核即可;无 AVX2 老 CPU 请用 ubuntu-xfce(见第六节 FAQ) |
| |
| 13000 |
验证 Docker:
docker --versiondocker compose version
若尚未安装 Docker,可使用轩辕镜像一键脚本:
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
检查 CPU 是否支持 AVX2(老机器建议先查):
grep -q avx2 /proc/cpuinfo && echo "支持 AVX2" || echo "不支持 AVX2,请用 ubuntu-xfce"
四、拉取镜像并 Compose 部署
本文使用 ubuntu-xfce 标签(兼容无 AVX2 CPU)。若 CPU 支持 AVX2 且想要 KDE,可换 ubuntu-kde。
4.1 创建目录
mkdir -p /www/wwwroot/webtop/configcd /www/wwwroot/webtop
4.2 拉取镜像
docker pull docker.xuanyuan.run/linuxserver/webtop:ubuntu-xfce
| |
|---|
linuxserver/webtransform: translateY(ubuntu-xfce | docker pull docker.xuanyuan.run/linuxserver/webtop:ubuntu-xfce |
首次拉取体积较大(数 GB),国内建议全程使用 docker.xuanyuan.run。
4.3 编写 docker-compose.yml
services: webtop: image: docker.xuanyuan.run/linuxserver/webtop:ubuntu-xfce container_name: webtop-ubuntu-kde environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai - LC_ALL=zh_CN.UTF-8 - CUSTOM_USER=admin - PASSWORD=你的强密码 - PIXELFLUX_WAYLAND=false volumes: - ./config:/config ports: - "13000:3000" - "13001:3001" shm_size: "1gb" restart: unless-stopped
| |
|---|
PUID | |
CUSTOM_USER | HTTP 基本认证 |
LC_ALL=zh_CN.UTF-8 | |
shm_size: 1gb | 必设 |
13000:3000 | |
PIXELFLUX_WAYLAND=false | 老 CPU 强制 X11,与 ubuntu-xfce 搭配更稳 |
4.4 启动服务
docker compose pulldocker compose up -ddocker compose logs -f webtop
成功时日志关键行(Ubuntu 24.04 实测):
[ls.io-init] CPU does not support AVX2. Falling back to X11INFO:selkies.__main__:Starting Selkies in 'websockets' mode.INFO:data_websocket:Data WebSocket Server listening on port 8082INFO:main:SelkiesStreamingApp initialized: encoder=x264enc, display=1024x768
看到 Falling back to X11 表示已回退到 X11 模式,可正常使用。日志里偶现 PolicyKit1 failed 在容器内常见,不影响桌面功能。
按 Ctrl+C 退出日志跟踪,容器继续在后台运行。
五、浏览器访问与登录
5.1 访问地址
| | |
|---|
| http://服务器IP:13000 | |
| HTTPS(推荐) | https://服务器IP:13001 | |
本文实测地址(将 IP 换成你的服务器):
https://192.168.1.18:13001/
5.2 HTTP 基本认证
浏览器会弹出登录框,输入 docker-compose.yml 中的 CUSTOM_USER 与 PASSWORD:
HTTPS 登录框:设置 CUSTOM_USER 与 PASSWORD 后的浏览器登录界面图 2:HTTPS 登录界面
证书警告:镜像使用 自签名证书,内网可点「高级 → 继续访问」;公网建议 Nginx 反代并配置正式证书。
安全提示:未设 PASSWORD 时默认 无认证,任何人可访问桌面。桌面内终端 可无密码 sudo,务必设置强密码并限制访问 IP,不要裸奔公网。
六、桌面使用指南
进入后是 XFCE 中文桌面,顶部菜单栏 + 底部程序坞,和普通 Linux 桌面一致。
6.1 文件管理
打开 文件管理器(Thunar),可图形化浏览容器内目录、查看磁盘占用:
文件管理器与磁盘属性:图形化浏览文件系统图 3:文件管理器与磁盘使用情况
默认管理 容器内 文件系统。访问宿主机目录可在 compose 增加 - /www/wwwroot:/data。侧边栏 Files 面板支持浏览器与容器间 上传 / 下载。
6.2 终端
底部坞站或菜单打开 终端模拟器:
终端执行 uname -a:容器内 Ubuntu x86_64图 4:容器内终端——uname -a 显示 Ubuntu x86_64
容器内默认用户 abc,可无密码 sudo 装软件——有 GUI 访问权的人等同容器内 root,务必做好认证与网络隔离。
6.3 应用程序菜单
左上角 所有应用程序 可打开设置、终端、文件管理器等:
应用程序菜单与设置子菜单图 5:完整应用程序菜单
6.4 内置浏览器
桌面自带 Firefox / Chromium,可直接在远程桌面里上网、查文档:
桌面内浏览器访问轩辕镜像 xuanyuan.cloud图 6:容器内浏览器访问 xuanyuan.cloud
6.5 应用程序查找器
应用程序查找器 列出预装软件:Chromium、Foot 终端、Mousepad 文本编辑器等:
应用程序查找器:Chromium、终端、文本编辑器图 7:预装常用工具
安装更多软件(容器内终端):
# 临时安装(容器重建后丢失)sudo apt update && sudo apt install -y git# 持久化安装(推荐)proot-apps install filezilla
七、常见问题与踩坑 FAQ
Q1:3000 端口被占用,启动报错 address already in use?
首次映射 3000:3000 可能报错:
failed to bind host port 0.0.0.0:3000/tcp: address already in use
原因:宿主机 3000 已被 Redmine 等服务占用。
处理:只改左侧宿主机端口:
ports: - "13000:3000" - "13001:3001"
排查:ss -tlnp | grep :3000
Q2:页面提示 ensure you have a cpu with AVX2 support,黑屏?
若使用 ubuntu-kde 且 CPU 无 AVX2,可能出现:
AVX2 不支持报错:ubuntu-kde 在无 AVX2 CPU 上黑屏图 8:ubuntu-kde 在无 AVX2 CPU 上报错(Wayland Only)
原因:ubuntu-kde 为 Wayland Only,需要 AVX2(约 Intel 四代 Haswell 及以后)。
解决:
- 2. 加
PIXELFLUX_WAYLAND=false
cd /www/wwwroot/webtopdocker compose pulldocker compose downdocker compose up -d
| | |
|---|
ubuntu-kde | | |
ubuntu-xfce | | 推荐 |
ubuntu-mate | | |
换镜像后界面异常,可清空配置重来(会丢失自定义):
docker compose downrm -rf /www/wwwroot/webtop/config/*docker compose up -d
Q3:画面卡顿怎么办?
老 CPU 走 X11 + CPU 编码属正常。可尝试:侧边栏降低帧率;加环境变量 SELKIES_ENCODER=x264enc,x264enc-striped,jpeg;缩小浏览器窗口。
Q4:日志里 PolicyKit1 failed 有影响吗?
容器内常见,一般不影响桌面与终端。
Q5:如何访问宿主机文件?
在 volumes 增加 - /www/wwwroot:/data,重启后在文件管理器打开 /data。
Q6:如何升级 / 停止?
# 升级cd /www/wwwroot/webtopdocker compose pull && docker compose down && docker compose up -d# 停止(保留 config)docker compose down# 删除全部数据(慎用)rm -rf /www/wwwroot/webtop
Q7:与 Docker Hub 官方镜像的关系?
功能相同。docker.xuanyuan.run/linuxserver/webtransform: translateY(ubuntu-xfce 为轩辕镜像加速同步版,便于国内拉取。
八、命令速查
| |
|---|
| docker pull docker.xuanyuan.run/linuxserver/webtransform: translateY(ubuntu-xfce |
| cd /www/wwwroot/webtop && docker compose up -d |
| docker compose logs -f webtop |
| https://服务器IP:13001 |
| grep -q avx2 /proc/cpuinfo && echo OK || echo 请用 ubuntu-xfce |
| ss -tlnp | grep :3000 |
| cd /www/wwwroot/webtop && docker compose down |
总结
Webtop = 不给宿主机装桌面,浏览器里就是 Linux 图形环境:
- • 使用轩辕镜像加速拉取
linuxserver/webtransform: translateY(ubuntu-xfce - •
docker compose up -d → https://服务器IP:13001 登录 - • 踩坑记住:3000 改映射、老 CPU 用 ubuntu-xfce + PIXELFLUX_WAYLAND=false
- • 按需启停,用完
docker compose down 释放内存
延伸阅读(复制打开):
LinuxServer 官方文档:
https://docs.linuxserver.io/images/docker-webtop/
GitHub 源码:
https://github.com/linuxserver/docker-webtop
Docker Hub:
https://hub.docker.com/r/linuxserver/webtop
linuxserver/webtop 轩辕镜像页:
https://xuanyuan.cloud/zh/r/linuxserver/webtop
轩辕镜像首页:
https://xuanyuan.cloud
如果你在拉取 Docker 镜像时遇到速度慢、超时等问题,可以试试轩辕镜像的加速服务。欢迎收藏 linuxserver/webtop 镜像页,获取最新标签与更新说明:
https://xuanyuan.cloud/zh/r/linuxserver/webtop
环境变量速查、安全提醒、GPU 加速与更多 FAQ,详细步骤请查看:
https://xuanyuan.cloud/blog/linux-docker-webtop
本文基于 linuxserver/webtransform: translateY(ubuntu-xfce 镜像,Ubuntu 24.04 服务器实测