From b0760442da7ad0872ed7fae312bb00d3e31d9788 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 17 Jan 2025 17:49:24 +0800 Subject: [PATCH] Updated at 2025-01-17 17:49:24+08:00 --- Dockers/ArchOS/Desktops/Deepin | 1 + Dockers/ArchOS/Desktops/GNOME3 | 1 + Dockers/ArchOS/Desktops/Plasma | 1 + Dockers/ArchOS/Desktops/Xfce4L | 3 ++- Dockers/Fedora/Desktops/Deepin | 2 ++ Dockers/Fedora/Desktops/GNOME3 | 7 ++++-- Dockers/Fedora/Desktops/Plasma | 4 +++- Dockers/Fedora/Desktops/Server | 1 + Dockers/Fedora/Desktops/X11GUI | 4 +++- Dockers/Fedora/Desktops/Xfce4L | 3 ++- README.md | 41 ++++++++++++++++++++++------------ TEXT_PATH | 1 + index.html | 12 +++++----- 13 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 TEXT_PATH diff --git a/Dockers/ArchOS/Desktops/Deepin b/Dockers/ArchOS/Desktops/Deepin index 1b2023d..0c1e758 100644 --- a/Dockers/ArchOS/Desktops/Deepin +++ b/Dockers/ArchOS/Desktops/Deepin @@ -27,6 +27,7 @@ RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh RUN echo 'bash /x11vnc.sh && nohup startdde & ' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/ArchOS/Desktops/GNOME3 b/Dockers/ArchOS/Desktops/GNOME3 index 44c1707..9b10054 100644 --- a/Dockers/ArchOS/Desktops/GNOME3 +++ b/Dockers/ArchOS/Desktops/GNOME3 @@ -22,6 +22,7 @@ RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh RUN echo 'bash /x11vnc.sh && nohup gnome-session & ' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/ArchOS/Desktops/Plasma b/Dockers/ArchOS/Desktops/Plasma index a0a6379..f83dd9c 100644 --- a/Dockers/ArchOS/Desktops/Plasma +++ b/Dockers/ArchOS/Desktops/Plasma @@ -27,6 +27,7 @@ RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh RUN echo 'bash /x11vnc.sh &&nohup startplasma-x11 &' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/ArchOS/Desktops/Xfce4L b/Dockers/ArchOS/Desktops/Xfce4L index 999d019..35f4ea4 100644 --- a/Dockers/ArchOS/Desktops/Xfce4L +++ b/Dockers/ArchOS/Desktops/Xfce4L @@ -27,7 +27,8 @@ RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh RUN echo 'bash /x11vnc.sh && nohup xfce4-session & ' >> /run.sh - +RUN chmod +x /run.sh + # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp CMD ["/sbin/init"] \ No newline at end of file diff --git a/Dockers/Fedora/Desktops/Deepin b/Dockers/Fedora/Desktops/Deepin index 585b8e7..5b58f84 100644 --- a/Dockers/Fedora/Desktops/Deepin +++ b/Dockers/Fedora/Desktops/Deepin @@ -7,6 +7,7 @@ FROM pikachuim/${OS_SYSTEMS}:${OS_VERSION}-x11gui # Install ----------------------------------------------------- #RUN mv /etc/pulse/default.pa /etc/pulse/default.pa.docker.bak RUN dnf update -y && dnf group install "Deepin Desktop" -y +RUN dnf install -y xorg-x11-server-Xvfb dbus-x11 x11vnc xrdp # Desktop Configs --------------------------------------------- @@ -21,6 +22,7 @@ RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh RUN echo 'bash /x11vnc.sh && nohup startdde & ' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/Fedora/Desktops/GNOME3 b/Dockers/Fedora/Desktops/GNOME3 index 0632708..d92d523 100644 --- a/Dockers/Fedora/Desktops/GNOME3 +++ b/Dockers/Fedora/Desktops/GNOME3 @@ -6,9 +6,10 @@ FROM pikachuim/${OS_SYSTEMS}:${OS_VERSION}-x11gui # Install ----------------------------------------------------- RUN dnf update -y && dnf group install -y gnome-desktop - +RUN dnf install -y xorg-x11-server-Xvfb dbus-x11 x11vnc xrdp + # Desktop Configs --------------------------------------------- -#RUN systemctl disable gdm && service gdm stop || echo "Ignored" +RUN systemctl disable gdm && service gdm stop || echo "Ignored" # X11VNC Root Set --------------------------------------------- COPY X11GUI/x11vnc.sh /x11vnc.sh @@ -17,7 +18,9 @@ COPY X11GUI/x11vnc.sh /x11vnc.sh RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh +RUN echo 'systemctl disable gdm && service gdm stop' >> /run.sh RUN echo 'bash /x11vnc.sh && nohup gnome-session & ' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/Fedora/Desktops/Plasma b/Dockers/Fedora/Desktops/Plasma index 7897611..ea8119a 100644 --- a/Dockers/Fedora/Desktops/Plasma +++ b/Dockers/Fedora/Desktops/Plasma @@ -6,6 +6,7 @@ FROM pikachuim/${OS_SYSTEMS}:${OS_VERSION}-x11gui # Install ----------------------------------------------------- #RUN mv /etc/pulse/default.pa /etc/pulse/default.pa.bak RUN dnf update -y &&dnf groupinstall -y "KDE Plasma Workspaces" +RUN dnf install -y xorg-x11-server-Xvfb dbus-x11 x11vnc xrdp # X11VNC Root Set --------------------------------------------- COPY X11GUI/x11vnc.sh /x11vnc.sh @@ -22,7 +23,8 @@ RUN echo 'killall plasma_session & killall kwin_x11' >> /run.sh RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh -RUN echo 'bash /x11vnc.sh &&nohup startplasma-x11 &' >> /run.sh +RUN echo 'bash /x11vnc.sh &&nohup plasma_session &' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/Fedora/Desktops/Server b/Dockers/Fedora/Desktops/Server index eec4dce..9865533 100644 --- a/Dockers/Fedora/Desktops/Server +++ b/Dockers/Fedora/Desktops/Server @@ -34,6 +34,7 @@ RUN groupadd -r -g 2000 user && useradd -u 2000 -m -r -g user user \ # Init ----------------------------------------------------------------- COPY Config/StartUP/run.service /etc/systemd/system/ COPY Config/StartUP/run.sh /run.sh +RUN chmod +x /run.sh RUN systemctl enable run # Port Mapping --------------------------------------------------------- diff --git a/Dockers/Fedora/Desktops/X11GUI b/Dockers/Fedora/Desktops/X11GUI index c1b4535..c370538 100644 --- a/Dockers/Fedora/Desktops/X11GUI +++ b/Dockers/Fedora/Desktops/X11GUI @@ -16,7 +16,8 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d # Install Xserver --------------------------------------------- RUN yum update -y && yum install -y @base-x wget curl git vim\ - dbus-x11 xinit neofetch + dbus-x11 xinit neofetch +RUN dnf install -y xorg-x11-server-Xvfb dbus-x11 x11vnc xrdp # Install Nomachine ------------------------------------------- ENV NX="download/8.15/Linux/nomachine_8.15.3_1_x86_64.rpm" @@ -44,6 +45,7 @@ RUN echo 'export DISPLAY=:0' >> /run.sh \ && echo 'echo Starting NX ----------------------' >> /run.sh \ && echo '/etc/NX/nxserver --startup' >> /run.sh \ && echo '/etc/NX/nxserver --restart' >> /run.sh +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/Dockers/Fedora/Desktops/Xfce4L b/Dockers/Fedora/Desktops/Xfce4L index 770be6d..e10fbe9 100644 --- a/Dockers/Fedora/Desktops/Xfce4L +++ b/Dockers/Fedora/Desktops/Xfce4L @@ -6,6 +6,7 @@ FROM pikachuim/${OS_SYSTEMS}:${OS_VERSION}-x11gui # Install ----------------------------------------------------- RUN dnf update -y && dnf group install -y "Xfce Desktop" +RUN dnf install -y xorg-x11-server-Xvfb dbus-x11 x11vnc xrdp # X11VNC Root Set --------------------------------------------- COPY X11GUI/x11vnc.sh /x11vnc.sh @@ -22,7 +23,7 @@ RUN echo 'export DISPLAY=:9 &&export $(dbus-launch)' >> /run.sh RUN echo 'nohup Xvfb :9 -ac -screen 0 1600x900x24 &' >> /run.sh RUN echo 'chmod +x /x11vnc.sh && export HOME=/root ' >> /run.sh RUN echo 'bash /x11vnc.sh && nohup xfce4-session & ' >> /run.sh - +RUN chmod +x /run.sh # Port Mapping ------------------------------------------------ EXPOSE 4000/tcp diff --git a/README.md b/README.md index ffe470a..0d1cdbe 100644 --- a/README.md +++ b/README.md @@ -22,20 +22,33 @@ RDPDocker is a Docker image building and container creation tool with X11 and de -### 各个系统桌面支持情况 - -| 系统名称
System Name | 系统版本
System Version | Server | Lingmo | GNOME | Xfce 4 | Deepin DE | Plasma | X11 GUI | -| :----------------------: | :-------------------------: | :----: | :-------: | :--------: | :-------: | :-------: | :-------: | :-----: | -| Ubuntu | 24.04 | ✔️ | ✔️ | ✔️VNC会报错 | ✔️ | ❌源未支持 | ✔️ | ✔️ | -| Ubuntu | 22.04 | ✔️ | ❌源未支持 | ✔️ | ✔️ | ✔️NX连不上 | ✔️ | ✔️ | -| Ubuntu | 20.04 | ✔️ | ❌源未支持 | ✔️ | ✔️ | ❌源未支持 | ✔️ | ✔️ | -| Debian | 13.00 | ✔️ | ❌源未支持 | ✔️VNC连不上 | ✔️ | ❌源未支持 | ✔️仅NX能连 | ✔️ | -| Debian | 12.00 | ✔️ | ✔️NX连不上 | ✔️VNC连不上 | ✔️ | ❌编译报错 | ✔️仅NX能连 | ✔️ | -| Debian | 11.00 | ✔️ | ❌源未支持 | ✔️VNC连不上 | ✔️ | ❌源未支持 | ✔️仅NX能连 | ✔️ | -| ArchOS | devel | ✔️ | ❌源未支持 | ✔️尚未测试 | ✔️尚未测试 | ✔️尚未测试 | ✔️尚未测试 | ✔️ | -| Fedora | 40.00 | ✔️ | ❌源未支持 | ✔️尚未测试 | ✔️尚未测试 | ✔️尚未测试 | ✔️尚未测试 | ✔️ | - -## Desktop桌面展示 +### Support DE / 各个系统桌面支持情况 + +| 系统名称
System Name | 系统版本
System Version | Server | Lingmo | GNOME | Xfce 4 | Deepin DE | Plasma | X11 GUI | +| :----------------------: | :-------------------------: | :----: | :-------: | :-----------: | :-------: | :----------: | :----------: | :-----: | +| Ubuntu | 24.04 | ✔️ | ✔️ | ✔️VNC会报错(1) | ✔️ | ❌源未支持 | ✔️ | ✔️ | +| Ubuntu | 22.04 | ✔️ | ❌源未支持 | ✔️ | ✔️ | ✔️NX连不上(4) | ✔️ | ✔️ | +| Ubuntu | 20.04 | ✔️ | ❌源未支持 | ✔️ | ✔️ | ❌源未支持 | ✔️ | ✔️ | +| Debian | 13.00 | ✔️ | ❌源未支持 | ✔️VNC连不上(1) | ✔️ | ❌源未支持 | ✔️仅NX能连(2) | ✔️ | +| Debian | 12.00 | ✔️ | ✔️NX连不上 | ✔️VNC连不上(1) | ✔️ | ❌编译报错 | ✔️仅NX能连(2) | ✔️ | +| Debian | 11.00 | ✔️ | ❌源未支持 | ✔️VNC连不上(1) | ✔️ | ❌源未支持 | ✔️仅NX能连(2) | ✔️ | +| ArchOS | devel | ✔️ | ❌源未支持 | ✔️尚未测试 | ✔️尚未测试 | ✔️尚未测试 | ✔️尚未测试 | ✔️ | +| Fedora | 40.00 | ✔️ | ❌源未支持 | ✔️桌面报错(1) | ✔️*(3) | ✔️ | ✔️ | ✔️ | + +### Known Issues / 一些已知的问题 + +- (1)部分GNOME系统VNC连不上,或者桌面首次打开会报错,点击确认后黑屏,解决办法 + - 登录到docker内部bash:`docker exec -it bash` + - 执行:`export DISPLAY=:9 &&export $(dbus-launch)` + - 执行:`nohup gnome-session & ` +- (2)部分KDE Plasma环境,无法通过VNC或者RDP连接,暂时无法解决 +- (3)部分Xfce 4环境,只能通过root帐号登录,非root需要root授权 +- (4)部分Deepin DE环境,NoMachine无法点击登录按钮,可以绕过: + - 在登录界面,点击关机按钮,但不要确认关机 + - 按下键盘的ESC键,你会发现可以输入密码了 +- (5)部分Lingmo系统dock无法加载,或者只能通过NoMachine连接 + +## Desktop 桌面展示 ### Lingmo diff --git a/TEXT_PATH b/TEXT_PATH new file mode 100644 index 0000000..a6a18ed --- /dev/null +++ b/TEXT_PATH @@ -0,0 +1 @@ +Docker Container: S1V3-OCI-00-CD1 diff --git a/index.html b/index.html index 58af4d3..12e1bab 100644 --- a/index.html +++ b/index.html @@ -1666,13 +1666,13 @@ README
-

RD Docker: Docker Support Remote Desktop Protocols

支持多种远程桌面协议连接带有桌面环境的Docker镜像

RDPDocker是一个带有X11个和桌面环境的Docker镜像构建和容器创建工具,支持创建Ubuntu、Debian、Arch Linux、Fedora(未来可能添加)系统,支持Lingmo、GNOME、Xfce4、X11(无桌面)、SSH(无图形化)等环境。同时,允许用户通过NoMachine、RDP(尚未支持)、VNC(尚未支持)、SSH等方式远程访问容器。本工具以非虚拟化和极低开销的情况下,实现了多用户共享一台主机的办法,同时创建极快,随用随开,并且只占用内存、磁盘极少的空间,只需要主机安装Docker即可,支持无桌面的Linux服务器、WSL2、LXC、安卓手机运行(通过容器或者chroot)。

RDPDocker is a Docker image building and container creation tool with X11 and desktop environments, supporting the creation of Ubuntu, Debian, Arch Linux, Fedora (possibly added in the future) systems, Lingmo, GNOME, Xfce4, X11 (no desktop), SSH (no graphics) and other environments. Meanwhile, users are allowed to remotely access the container through methods such as NoMachine, RDP (not yet supported), VNC (not yet supported), SSH, etc. This tool enables multiple users to share a host without virtualization and at extremely low cost. It is also very fast to create, can be used and opened at any time, and only occupies minimal memory and disk space. Docker only needs to be installed on the host. Supports running on headless Linux servers desktop, WSL2, LXC, and Android phones (via containers or chroot).

Images / 镜像概览

Intros / 镜像介绍

#Desktop EnvIntroductionUbuntuDebianArchFedora
1Server无GUI和桌面,仅用于 SSH 远程连接使用
No GUI and DE, only used for SSH connect.
✔️✔️✔️✔️
2Lingmo一个拥有高效和优美GUI 的现代桌面环境
Lingmo is a DE with efficient and great UI
✔️*✔️*
3GNOMELinux常用图形的桌面环境, 功能齐全方便
DE for commonly used graphics on Linux
✔️✔️✔️✔️
4Xfce4L一个非常轻量, 简洁易用的Linux桌面环境
A lightweight & easy DE for UNIX-like OS.
✔️✔️✔️✔️
5Deepin深度科技自主开发的美观易用的桌面环境
主要由桌面、启动器、任务栏、控制中心
窗口管理器等组成,预装了深度特色应用
✔️✔️✔️✔️
6Plasma您可以使用Plasma 桌面环境轻松浏览网页
与同事、朋友和家人保持联系,管理文件
欣赏音乐和视频,并发挥创意和提高效率
✔️✔️✔️✔️
0X11GUIX11桌面基础环境集成远程桌面(构建专用)
X11 Desktop Basic Env (For build DE only.)
✔️✔️✔️✔️

 

各个系统桌面支持情况

系统名称
System Name
系统版本
System Version
ServerLingmoGNOMEXfce 4Deepin DEPlasmaX11 GUI
Ubuntu24.04✔️✔️✔️VNC会报错✔️❌源未支持✔️✔️
Ubuntu22.04✔️❌源未支持✔️✔️✔️NX连不上✔️✔️
Ubuntu20.04✔️❌源未支持✔️✔️❌源未支持✔️✔️
Debian13.00✔️❌源未支持✔️VNC连不上✔️❌源未支持✔️仅NX能连✔️
Debian12.00✔️✔️NX连不上✔️VNC连不上✔️❌编译报错✔️仅NX能连✔️
Debian11.00✔️❌源未支持✔️VNC连不上✔️❌源未支持✔️仅NX能连✔️
ArchOSdevel✔️❌源未支持✔️尚未测试✔️尚未测试✔️尚未测试✔️尚未测试✔️
Fedora40.00✔️❌源未支持✔️尚未测试✔️尚未测试✔️尚未测试✔️尚未测试✔️

Desktop桌面展示

Lingmo

lingmo

GNOME

gnome

Xfce4 Lite

xfce4l

Deepin DE

deepin

KDE Plasma

plasma

Usages 使用方法

Clone Git 克隆镜像

Run OCIs 运行容器

  • 您将看到这个界面(You will see this interface):

  • 输入n然后回车进入创建菜单(Enter n and press enter to enter the create menu)

  • 选择是否使用宿主机的显卡(Choose whether to use the graphics card of the host computer)

  • 注意:必须是英伟达独立显卡才可以使用(Attention: It must be an NVIDIA discrete graphics card)

  • 输入唯一的两位数ID(比如01) (Enter a unique two digit ID to distinguish like 01)

  • 映射端口,格式为主机端口:容器端口,不需要或者完成映射,直接输入q即可退出

  • Map ports in the format of host port: container port, enter q to exit port map.

  • 确认信息,输入y确认创建 (Confirm information, enter y to confirm creation)

  • 创建完成后会输出容器访问信息:

     

  • Connect 使用容器

    1. 下载NoMachine,然后安装 / Download NoMachine, Then install

    2. 打开NoMachine,选择左上角的Add,添加远程桌面

      Open NoMachine, select 'Add' and add remote desktop

      host:您docker所在主机地址 / Your Docker host address

      port:上面列出的端口,为1+ID+40,例如ID01,则端口为10140

      The ports listed above. 1+ID+40. For example, if ID is 01, then the port is 10140

    3. 然后您可以连接,用户名可以是root或者user,密码是上面列出Password:后面内容

      Then you can connect, the username can be 'root' or 'user', and the password is listed above

    Q&A 错误排查

    1. 无法连接远程服务器 / Unable to connect to remote server

      • 检查服务器IP地址、防火墙端口是否打开

        Check if the server IP address and firewall are open

      • 检查Docker是否安装、容器是否超过启动

        Check if Docker is installed and if the container has exceeded startup time

      • 检查NoMachine服务是否正常运行

        Check if the NoMachine service is running properly

        在主机上执行:docker exec -it 容器名称 bash -c "ps -ef | grep nxserve"

        Execute on the host: docker exec -it Name bash -c "ps -ef | grep nxserve"

        正常情况输出(Normal output):

      • 如果没有,可以尝试运行(If not, you can try running it)

    2. 没有桌面/黑屏/白屏/卡死 / No desktop/black screen/white screen/stuck

     

    \ No newline at end of file