在浏览器中操作Linux系统-Webtop

文章目录[x]
  1. 1:# 什么是WebTop
  2. 2:# Webtop 优势
  3. 3:# 适用场景
  4. 4:# Linux系统管理系统
  5. 5:# 基础镜像构建相关脚本
  6. 5.1:## Node+Vscode基础镜像

# 什么是WebTop

Webtop(项目地址:https://github.com/linuxserver/docker-webtop)是一款基于Docker的轻量级容器,能在浏览器中操作完整的Linux桌面环境。它支持Xfce、KDE、MATE等多种桌面环境,自带音频支持/剪贴板同步/文件上传下载等实用功能,堪称移动端Linux神器。

# Webtop 优势

1. 跨平台作战:有浏览器就能用
2. 桌面环境任选:Alpine/Ubuntu双系统,并且可以构建自己的系统
3. 资源占用友好:1GB内存即可流畅运行,比传统虚拟机节省70%资源
4. 企业级安全:支持HTTPS加密访问,可配置双重身份验证
5. 无缝数据同步:浏览器标签页关闭自动保存工作状态,支持挂载本地目录

# 适用场景

1. 临时需要Linux环境的Windows用户
2. 移动端轻量级开发调试
3. 给学生党搭建编程实验环境
4. 企业内网部署安全沙箱环境

# Linux系统管理系统

基于Webtop的特点我们开发了一套企业内部Linux系统环境管理系统,系统分为管理端和用户端,管理员可以通过管理端为用户创建基础环境,用户使用账号密码通过浏览器进行系统操作。
管理端环境管理看板
管理端环境创建界面
管理端环境管理界面
用户选择所属系统环境界面
用户-Ubuntu系统界面
用户-Kylin系统界面

# 基础镜像构建相关脚本

## Node+Vscode基础镜像

dockerfile
# 基于 linuxserver.io 的 KDE Webtop 镜像
FROM lscr.io/linuxserver/webtop:ubuntu-kde

# 如需代理
ENV http_proxy=http://192.168.2.19:7897
ENV https_proxy=http://192.168.2.19:7897

# 1. 安装常用依赖和 Node.js 所需工具
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        curl \
        wget \
        ca-certificates \
        git \
        gnupg \
        apt-transport-https \
        software-properties-common \
        && \
    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# 2. 安装 Node.js (使用 NodeSource 官方仓库安装最新 LTS 版本)
ENV NODE_MAJOR=20
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
    apt-get install -y nodejs && \
    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# 验证 Node.js 和 npm 安装
RUN node --version && npm --version

# 3. 配置 npm 全局目录(避免权限问题)
RUN mkdir -p /opt/npm-global && \
    npm config set prefix /opt/npm-global && \
    echo "export PATH=/opt/npm-global/bin:\$PATH" >> /etc/bash.bashrc && \
    echo "export PATH=/opt/npm-global/bin:\$PATH" >> /etc/profile
ENV PATH=/opt/npm-global/bin:$PATH

# 4. 安装常用的全局 npm 包(可选)
RUN npm install -g yarn pnpm

# 5. 下载并安装 VS Code
RUN wget -q --show-progress -O /tmp/vscode.deb \
    'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64' && \
    apt-get update && \
    apt-get install -y /tmp/vscode.deb && \
    rm /tmp/vscode.deb && \
    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# 6. 创建 VS Code 的桌面快捷方式(KDE 菜单图标)
RUN cat >/usr/share/applications/code.desktop <<'EOF'
[Desktop Entry]
Version=1.0
Type=Application
Name=Visual Studio Code
GenericName=Text Editor
Comment=Code Editing. Redefined.
Icon=/usr/share/pixmaps/vscode.png
Exec=/usr/bin/code --no-sandbox --user-data-dir=/config/.vscode %F
Terminal=false
Categories=Development;IDE;
MimeType=text/plain;inode/directory;
StartupNotify=true
StartupWMClass=Code
EOF

# 7. 创建符号链接,便于命令行使用
RUN ln -sf /usr/bin/code /usr/local/bin/vscode

# 8. 设置 npm 和 VS Code 目录权限
RUN chmod -R 755 /opt/npm-global && \
    chown -R abc:abc /opt/npm-global || true

# 9. 构建完成后清除代理环境变量
ENV http_proxy=
ENV https_proxy=

WORKDIR /config
# 构建镜像
sudo docker build -t lscr.io/linuxserver/webtop:ubuntu-kde-node .

# 启动镜像
sudo docker run -d \
  --name=webtop-kde-node \
  -e PUID=1000 \
  -e PGID=1000 \
  -e LANG=zh_CN.UTF-8 \
  -e LANGUAGE=zh_CN:zh \
  -e LC_ALL=zh_CN.UTF-8 \
  -e TZ=Asia/Shanghai \
  -p 13300:3000 \
  -p 13301:3001 \
  -v $(pwd)/selkies-kde-node:/config \
  --shm-size="1gb" \
  --restart unless-stopped \
  lscr.io/linuxserver/webtop:ubuntu-kde-node

# 镜像导出为文件
sudo docker save -o ubuntu-kde-node.tar lscr.io/linuxserver/webtop:ubuntu-kde-node

# 加载镜像
sudo docker load -i ubuntu-kde-node.tar

# 进入容器交互
sudo docker exec -it <容器id/容器名称> /bib/bash

# 查看容器最近的日志
sudo docker logs <容器id/容器名称> --tail 50

 

点赞

发表回复

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像(已失效)