Docker-VNC桌面配置

在使用公共服务器时,通常用户只有普通权限账户,无法按照自己的想法任意对服务器进行配置。为满足这种需求,常使用docker来实现在容器内使用root权限来自由配置环境。VNC是一种常用的远程桌面,可以通过端口通信实现服务器渲染画面的回传。这在进行一些有界面的实验(如mujoco,habitat, igibson环境)时非常有用。本文将主要介绍如何在docker中配置vnc桌面,并给出了一个打包好的镜像:kezhiadore/ubuntu-vnc - Docker Image | Docker Hub

是可爱的垃圾呀

首先,从一个初始的Ubuntu18.04镜像开始,下载,启动并进入容器

1
2
3
docker pull ubuntu:bionic
docker run -itd --name ubuntu-vnc ubuntu:bionic
docker exec -it ubuntu-vnc

这个容器是没有桌面,因此先安装一个xfce4桌面

1
apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

进入之后下载安装vncserver

1
2
apt update
apt install tigervnc-standalone-server tigervnc-common

在用户目录下配置启动文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
apt insall vim
vim ~/.vnc/xstartup

## 添加以下脚本

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

# 保存并关闭文件。无论何时启动或者重启TigerVNC服务器,都将会自动执行上述命令

# 修改文件权限
chmod +x ~/.vnc/xstartup

启动vncserver

1
vncserver :1

vncserver初次启动需要配置密码,密码配置完成后,使用vnc客户端访问端口5091即可连接到远程桌面。

Tips

Reference

  1. docker容器内部配置VNC和novnc,主机或者外部可访问_docker novnc-CSDN博客
  2. 使用VNC可视化Docker容器_docker vnc-CSDN博客
  3. Ubuntu Docker容器开启VNC桌面-小果冻之家 (pimspeak.com)