千家信息网

如何用docker运行Linux桌面

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关如何用docker运行Linux桌面,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。容器的大流行让很多东西虚拟化、容器化变成了现实。
千家信息网最后更新 2026年11月01日如何用docker运行Linux桌面

这期内容当中小编将会给大家带来有关如何用docker运行Linux桌面,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

容器的大流行让很多东西虚拟化、容器化变成了现实。很多人还希望更多,想在容器中跑整个OS,将容器当虚拟机用。一般来说这个想法不是推荐的做法,但并非是无法实现。

概述

Webtops项目和一般的短小精悍,单一功能Docker哲学背道而驰,但是要实现功能就必须如此。该项目需要在容器中运行以下的服务:

(1) Guacamole Server:Apache基金会下的无客户端一个远程桌面网关。这是实现Web(浏览器)访问远程桌面的关键。

(2) xrdp Server:提供使用RDP(Microsoft远程桌面协议)的远程计算机的图形登录。xrdp接受来自各种平台RDP客户端的连接,包括reeRDP,rdesktop,NeutrinoRDP和Microsoft远程桌面客户端。

(3) Pulseaudio:一个跨平台的、可通过网络工作的声音服务。

(4) Custom nodejs frontend:

(5) Webtops项目可以做到:

  • 像素渲染的完美分辨率

  • 基本的窗口管理器

  • 音频支持

  • 使用RDP协议

  • 剪贴板支持

  • 屏幕键盘支持

  • 远程文件上传/下载管理

Webtops设计时候考虑了容器化,以构建基本镜像的设计理念进行了开发,所以支持应用扩展,可以轻松地将任何Linux GUI应用程序嵌入进来。在桌面环境中,用户可以通过需求安装特定的软件包并根据需要自定义。

安装部署

由于基于容器化部署,安装非常简单,直接一个docker命令就可以完成部署:

docker run -d \ --name=webtop \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ -p 3000:3000 \ -v /path/to/data:/config \ --shm-size="1gb" \ --restart unless-stopped \ ghcr.io/linuxserver/webtop

然后通过浏览器访问:localhost:3000,就可以访问,这是Alpine XFCE桌面环境:

屏幕的左侧是一个箭头,该箭头可以用来扩展某些内置的远程交互功能的菜单,也可以使用ctrl + alt + shift组合键打开和关闭此菜单:

在弹出菜单中,可以启动文件浏览器,弹出式软键盘(手机或者触摸板用)以及将剪贴板。

文件浏览器中,直接实现用户当前系统和远程系统的文件上传下载和其他一些操作。

用户当前剪贴板中的内容,先复制到该剪贴板框中,后续才能在远程机器中使用。

偏好设置

目前除了Alpine外也支持Ubuntu,支持的桌面系统包括:

  • XFCE

  • KDE

  • MATE

  • i3

  • Openbox

  • IceWM

访问认证

默认情况下,镜像启用abc用户,无需认证就可以访问。abc用户默认密码也是 abc。如果要更改此密码并在访问界面时启用身份验证,需要通过在服务器上执行:

docker exec -it webtop passwd abc

然后通过localhost:3000/?login=true访问

默认会打开xrdp登录管理器,可以在其中输入用户名和密码。

更新

如前已经说过容器化的Linux桌面环境实际上与经典Docker哲学相悖,因此强烈建议不要使用通过Docker来处理镜像来更新。可以使用操作系统的包管理更新系统

对于Alpine用apk:

sudo apk upgrade

Ubuntu则使用apt:

sudo apt-get update && sudo apt-get dist-upgrade –y

自定义

编译镜像

为了让基础镜像中嵌入所需的的APP,比如要添加Firefox容器时候示例Dockerfile:

FROM lsiobase/rdesktop-web:alpine RUN \ echo "**** install packages ****" && \ apk add --no-cache \ firefox-esr && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* # add local files COPY /root / # ports and volumes EXPOSE 3000 VOLUME /config

除了安装应用程序外,还需要在启动文件中/root/defaults/autostart添加firefox的启动点。

就是这样,当容器启动后, Firefox将在基本的Openbox gui中启动:

还有一个LibreOffice应用的Dockerfile文件如下:

FROM lsiobase/rdesktop-web:alpine # set version label ARG BUILD_DATE ARG VERSION ARG LIBREOFFICE_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" RUN \ echo "**** install packages ****" && \ apk add --no-cache --virtual=build-dependencies \ curl && \ if [ -z ${LIBREOFFICE_VERSION+x} ]; then \ LIBREOFFICE_VERSION=$(curl -sL " dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:libreoffice$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ fi && \ apk add --no-cache \ libreoffice==${LIBREOFFICE_VERSION} \ tint2 && \ echo "**** openbox tweaks ****" && \ sed -i \ 's/NLMC/NLIMC/g' \ /etc/xdg/openbox/rc.xml && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ rm -rf \ /tmp/* # add local files COPY /root / # ports and volumes EXPOSE 3000 VOLUME /config

自启动

默认只有当用户登录Web界面时才会启动桌面应用程序,如果需要在容器启动时运行应用程序,则需要设置环境变量:

-e GUIAUTOSTART=true

如果用户将默认容器中的密码更改为abc,还需要设置密码选项以确保应用程序自动启动:

-e PASSWORD=yourpassword

上述就是小编为大家分享的如何用docker运行Linux桌面了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

容器 桌面 用户 应用 文件 支持 密码 应用程序 程序 系统 镜像 运行 浏览器 环境 剪贴 浏览 管理 内容 剪贴板 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 互联网金融监管科技数据 金融科技还是互联网 金融科技与互联网金融 易互联网科技有限公司 北京互联网络科技有限公司 重庆科技学院互联网 中国最先进互联网科技公司 上海电发互联网科技有限公司 北京大学互联网科技怎么样 呼和浩特新华互联网科技学院 亳州好赞互联网科技有限公司 华夏恒生互联网科技013171 高科技互联网发展前景如何 上海科技产业互联网平台 南通创西澳互联网科技有限公司 皮皮虾互联网科技有限公司 互联网营销推广黑科技 宇信科技在杭州互联网排第几 互联网安防科技感 互联网金融监管科技数据 互联网科技集团 狮子座互联网科技 互联网科技股票 天下捷融互联网科技 富国互联网科技创新基金 欧洲十大科技互联网公司 互联网科技项目计划书材料类 青岛易易互联网科技 黑龙江互联网科技公司
0