Ubuntu Docker容器开启VNC桌面

Docker容器中运行的Ubuntu也可以通过VNC开启桌面,配置过程并不是很复杂。

在这个过程中需要安装:

  1. 桌面环境:Unity或Xfce;
  2. vnc4server;
  3. 常用桌面软件。

步骤:

安装桌面环境

桌面环境可以选Unity或Xfce,这里推荐Unity,更漂亮一些。

apt install -y xorg openbox
apt install -y ubuntu-desktop
apt install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

安装vnc4server

apt install -y vnc4server

如果找不到源可以参考这篇 Ubuntu安装vnc4server找不到源的问题

安装完后配置VNC端口,修改/usr/bin/vncserver,在这个文件中找到vncPort一行,可以看到$vncPort = 5900 + $displayNumber;,将5900修改为需要的端口号。

修改xtartup文件

编辑~/.vnc/xstartup,Unity版内容如下

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

启动

使用命令vncserver命令启动桌面,首次需要输入密码。默认端口5900,加上displayNumber 1,连接端口就是5901。

关闭

关闭vncserver:

vncserver -kill :1

设置分辨率

设置分辨率并重启:

vncserver -geometry 1366x768 :1

连接

使用VNC Viewer或其它VNC软件通过5901端口连接桌面。

MAC系统可以直接使用Finder菜单栏中的前往->连接服务器,输入vnc://ip:5901,再按提示输入VNC的密码就可以了。

附上桌面截图

docker ubuntu unity

Xfce版

个人认为Xfce不如Unity漂亮,但不排除有人喜欢,配置方法如下。

安装环境

apt install -y xfce4 xubuntu-desktop

修改xstartup

sed -i 's$x-window-manager$xfce4-session$' ~/.vnc/xstartup

vnc4server相关的步骤大部分是一样的,不再列出。

附上Xfce的桌面截图

docker ubuntu xfce

如果遇到终端模拟器(Terminal Emulator)打不开的情况,可将Xfce Terminal设置为默认终端

apt-get install xfce4-terminal #安装Xfce时应该是装过的
update-alternatives --config x-terminal-emulator

在列表里选择Path为/usr/bin/xfce4-terminal.wrapper的就行了。

Chrome浏览器

Chrome浏览器安装完后直接通过菜单可能打不开,需要换个打开方式。

### 安装
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
dpkg -i google-chrome-stable_current_amd64.deb

### 打开,桌面环境的终端中执行
google-chrome --no-sandbox

但由于加上了--no-sandbox,稳定性和安全性大大降低,页面可能会崩溃,所以还是推荐使用自带的Firefox浏览器。

注意点

  1. Unity版的gnome-terminal不在菜单中,即使配置了也启动不了;
  2. Xfce版的Xfce Terminal可以正常启动;
  3. Xfce的资源占用比Unity要高一些;
  4. 两个桌面都安装了一些不必要的软件,如LibreOffice等,用不到的可以删了;

Leave a Comment

豫ICP备19001387号-1