GitHub_Trending/do/docker-webtop与Terraform:基础设施即代码部署
项目概述
GitHub_Trending/do/docker-webtop 是一个基于Ubuntu、Alpine、Arch和Fedora的Webtop镜像项目,支持在Web浏览器中运行流行的桌面环境。该项目由LinuxServer.io团队开发,提供了定期更新、简单的用户映射、自定义基础镜像以及每周基础操作系统更新等特性,确保了空间使用、停机时间和带宽的最小化,同时保持了定期的安全更新。
快速部署指南
Docker Compose部署
推荐使用Docker Compose进行部署,项目中提供了完整的示例配置。以下是基本的部署步骤:
- 创建
compose.yaml文件,内容如下:
---
services:
webtop:
image: lscr.io/linuxserver/webtop:latest
container_name: webtop
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/data:/config
ports:
- 3000:3000
- 3001:3001
shm_size: "1gb"
restart: unless-stopped
- 执行以下命令启动服务:
docker-compose up -d
Docker CLI部署
如果需要使用Docker CLI直接部署,可以执行以下命令:
docker run -d \
--name=webtop \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/data:/config \
--shm-size="1gb" \
--restart unless-stopped \
lscr.io/linuxserver/webtop:latest
高级配置选项
环境变量配置
Webtop提供了多种环境变量用于自定义配置,以下是常用的几个选项:
| 变量 | 描述 |
|---|---|
CUSTOM_USER | HTTP基本认证的用户名,默认为abc |
PASSWORD | HTTP基本认证的密码,如果未设置则禁用认证 |
SUBFOLDER | 反向代理配置的应用子文件夹,必须包含前导和尾随斜杠,例如/subfolder/ |
TITLE | Web浏览器中显示的页面标题,默认为"Selkies" |
LC_ALL | 设置容器的区域设置,例如zh_CN.UTF-8表示中文 |
安全配置
[!WARNING] 此容器提供对主机系统的特权访问。除非已正确保护,否则不要将其暴露到互联网。
默认情况下,此容器没有身份验证。可选的CUSTOM_USER和PASSWORD环境变量启用基本HTTP身份验证,这仅适用于在受信任的本地网络上保护容器。对于互联网暴露,强烈建议将容器放在反向代理(如SWAG)后面,并使用强大的身份验证机制。
Web界面包括一个无需密码的sudo访问终端。任何有权访问GUI的用户都可以在容器内获得root控制权,安装任意软件,并探测本地网络。
GPU加速配置
对于加速应用或游戏,可以将渲染设备挂载到容器中,并通过以下方式被应用程序利用:
--device /dev/dri:/dev/dri
此功能仅支持开源GPU驱动程序:
| 驱动 | 描述 |
|---|---|
| Intel | 适用于Intel iGPU芯片组的i965和i915驱动程序 |
| AMD | 适用于AMD专用或APU芯片组的AMDGPU、Radeon和ATI驱动程序 |
| NVIDIA | 仅nouveau2驱动程序,闭源NVIDIA驱动程序缺乏DRI3支持 |
DRINODE环境变量可用于指向特定的GPU。
应用管理
PRoot应用(持久化)
原生安装的软件包(例如通过apt-get install)在容器重新创建后不会持久存在。为了在容器更新之间保留应用程序及其设置,建议使用proot-apps。这些是安装到用户持久$HOME目录的便携式应用程序。
要在容器内安装应用程序,请使用命令行:
proot-apps install filezilla
支持的应用程序列表可在此处找到。
原生应用(非持久化)
可以使用universal-package-install mod从系统的原生仓库安装软件包。此方法会增加容器的启动时间,并且不具有持久性。在compose.yaml中添加以下内容:
environment:
- DOCKER_MODS=linuxserver/mods:universal-package-install
- INSTALL_PACKAGES=libfuse2|git|gdb
容器更新与维护
使用Docker Compose更新
-
更新镜像:
-
所有镜像:
docker-compose pull -
单个镜像:
docker-compose pull webtop
-
-
更新容器:
-
所有容器:
docker-compose up -d -
单个容器:
docker-compose up -d webtop
-
-
还可以删除旧的悬空镜像:
docker image prune
使用Docker Run更新
-
更新镜像:
docker pull lscr.io/linuxserver/webtop:latest -
停止运行中的容器:
docker stop webtop -
删除容器:
docker rm webtop -
使用上述说明的相同docker run参数重新创建新容器(如果正确映射到主机文件夹,
/config文件夹和设置将被保留) -
还可以删除旧的悬空镜像:
docker image prune
本地构建
如果想要对这些镜像进行本地修改以用于开发目的或自定义逻辑:
git clone https://gitcode.com/GitHub_Trending/do/docker-webtop
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。
版本历史
- 24.07.25: - 将Debian镜像重新基于Trixie。
- 17.06.25: - 将所有镜像重新基于Selkies,删除openbox和icewm,将Alpine升级到3.22,将Fedora升级到42。
- 10.01.25: - 将Fedora重新基于41。
- 06.12.24: - 将Alpine重新基于3.21。
- 26.09.24: - 在Alpine镜像上从firefox切换到chromium。
- 23.05.24: - 将Alpine重新基于3.20,记录Nvidia支持。
- 22.04.24: - 将Ubuntu重新基于Noble。
- 16.04.24: - 添加PRoot Apps文档。
- 14.04.24: - 将Fedora重新基于40。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



