【DOCKER】VNC可视化UBUNTU容器

1. 启动测试容器

# 启动容器
# -e USER=u20   vncserver所需环境变量
# -p 15901:5901 vncserver所需端口
docker run -id --privileged=true --restart always --user=u20 --workdir=/home/u20 -p 15901:5901 -e USER=u20 --name ui u20:dev

# 进入容器
docker exec -it ui /bin/bash

# 更新软件
sudo apt-get update -y
sudo apt-get upgrade -y

2. 安装X11与Xfce4

sudo apt-get install -y xorg openbox xfce4 xfce4-goodies
#  1. gdm3  2. lightdm
# Default display manager:
# Select 2

# 1. 无法使用终端
sudo apt-get install xfce4-terminal
sudo update-alternatives --config x-terminal-emulator # Select xfce4-terminal.

# 2. 中文乱码
sudo apt-get install -y locales
sudo dpkg-reconfigure locales
# 语言编码选择 en_US.UTF8,zh_CN GB2312,zh_CN GBK GBK,zh_CN UTF-8 UTF-8,即:159 488 490 491
# 为当前用户配置默认语言为中文zh_CN UTF-8 UTF-8,在~/.bashrc最后添加一行 export LANG=zh_CN.UTF-8
# 安装中文字体:sudo apt-get install -y fonts-wqy-zenhei

3. vncserver

3.1 安装

# ubuntu 20.04
sudo apt-get install -y tightvncserver

3.2 配置

  • 安装完成后,执行vncserver,配置访问密码与生成默认配置。
    vncserver
    
    • 密码:输入一个6-8位的密码,后续用VNC viewer连接会用。这里为:123456。
    • 是否创建仅查看密码:使用仅查看密码登录的用户将无法使用鼠标或键盘控制云服务器。此处输入n
    • 后续如果想更改密码或添加仅查看密码,使用以下命令:vncpasswd
  • 删除上一步创建的虚拟桌面。
    vncserver -kill :1
    
  • 备份VNC配置文件
    cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
    
  • 修改配置文件
    vim ~/.vnc/xstartup
    
  • 写入一下内容
    #!/bin/sh
    xrdb $HOME/.Xresources
    xsetroot -solid grey
    #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    #x-window-manager &
    # Fix to make GNOME work
    export XKL_XMODMAP_DISABLE=1
    /etc/X11/Xsession
    startxfce4 &
    
  • 为了保证VNC服务正常启动,需要配置xstartup为可执行文件
    chmod +x ~/.vnc/xstartup
    
  • 启动虚拟化桌面
    vncserver -geometry 1920x1080 -depth 24
    # New 'X' desktop is 1f84fb9bb726:1
    #
    # Starting applications specified in /home/u20/.vnc/xstartup
    # Log file is /home/u20/.vnc/1f84fb9bb726:1.log
    
  • 查询VNC端口
    # 列出已启动的虚拟桌面
    vncserver -list
    
    # 查询状态
    sudo apt-get install -y net-tools
    netstat -ntupl
    
    # Active Internet connections (only servers)
    # Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    # tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      9233/Xtigervnc      
    # tcp6       0      0 :::5901                 :::*                    LISTEN      9233/Xtigervnc 
    
  • 使用VNC客户端连接
    使用宿主机IP地址:启动容器时指定的宿主机映射端口,连接虚拟化桌面。 在这里插入图片描述
    输入vncserver连接密码。这里是:123456。
    在这里插入图片描述
  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhy29563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值