docker容器使用桌面ui

作者:iohannes 发布时间: 2025-09-09 阅读量:26

确定容器开通5901端口

version: "3.8"
services:
  ubuntu-nomachine:
    image: ubuntu:22.04
    container_name: u22-desktop
    restart: unless-stopped
    privileged: true
    shm_size: 2g
    ports:
      - "8001:5901"
      - "8002:22"
    volumes:
      - ./data:/data
    cap_add:
      - SYS_ADMIN
    devices:
      - /dev/fuse
    stdin_open: true
    tty: true

安装vncserver

apt install xfce4 xfce4-goodies xterm nano -y
wget -O turbovnc_3.deb https://onboardcloud.dl.sourceforge.net/project/turbovnc/3.1/turbovnc_3.1_amd64.deb?viasf=1
apt install ./turbovnc_3.deb

设置VNC密码

export USER=root 
/opt/TurboVNC/bin/vncserver
  • 记住密码,VNC Viewer登录的时候要用

设置默认进入桌面

/opt/TurboVNC/bin/vncserver -kill :1
nano ~/.vnc/xstartup
#!/bin/bash

export XDG_RUNTIME_DIR=/run/user/$(id -u)
export $(dbus-launch)
export DESKTOP_SESSION=xfce
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=Xfce
export XDG_CONFIG_HOME=$HOME/.config
export XDG_RUNTIME_DIR=$HOME/.cache/xdg
export XDG_DATA_HOME=$HOME/.local/share

/opt/TurboVNC/bin/vncserver -geometry 1280x1024

startxfce4 &

启动新的虚拟桌面

chmod +x ~/.vnc/xstartup
/opt/TurboVNC/bin/vncserver

启用ssh

passwd
apt install ssh nano -y
/etc/init.d/ssh start
nano /etc/ssh/sshd_config
PermitRootLogin yes
  • 记住密码,ssh时需要

非局域网走ssh隧道

客户端运行:

ssh -p 22 -NL 8001:localhost:5901 name@ip
  • 22 是远程主机的ssh端口
  • 8001 是本机监听端口
  • 5901 是远程主机nomachine使用端口

连接到远程主机

客户端打开 VNC Viewer 客户端

VNC Viewer:localhost:8001
Name:root