目录
相关概念:
实现步骤:
1.启动docker容器
2.安装x11
3.Docker 容器中安装一个完整的图形桌面(XFCE)和 VNC 远程桌面服务器(TightVNC)
4.配置vncservice
5.本地安装VNC Viewer连接VNC Viewer下载地址: https://www.realvnc.com/en/connect/download/viewer安装完成后,启动VNC Viewer,在上方输入框中输入ip:端口号并确定,弹出的警告窗口选择Continue,然后输入密码即可。
参考连接:
问题描述:在docker中跑colmap相关扩展的项目,想看一下可视化结果,于是想能否远程桌面一样控制docker环境
结果:
相关概念:
VNC 的基本原理:
- VNC 使用的是 RFB 协议(Remote Framebuffer Protocol)。
- VNC Server 运行在要被控制的电脑上(也叫“远程端”),它将当前屏幕帧缓冲区的内容发送给客户端。
- VNC Viewer 运行在控制方的电脑上,通过网络连接 VNC Server,接收图像并发送键鼠操作。
VNC 的常见用途
- 远程控制 Linux 桌面(尤其是服务器无图形界面时需要手动配置桌面 + VNC)。
- 多用户同时登录共享服务器(每个用户一个 VNC 会话)。
- 跨平台远程访问(例如使用 Windows 控制 Ubuntu)。
常见的 VNC Server 软件
名称 | 说明 |
---|---|
TigerVNC | 性能稳定,开源常用 |
RealVNC | 商业版和免费版都有,界面友好 |
TightVNC | 占用资源少,适合低带宽环境 |
x11vnc | 用于共享当前 X11 桌面(非虚拟桌面) |
实现步骤:
1.启动docker容器
docker run --privileged -t \
--name colmap_vnc \
--gpus all \
-p 5901:5901 \
-v /media/vr716/.../docker_colmap:/workspace \
colmap_docker:v2_vnc
参数 | 说明 |
---|---|
docker run | 启动一个新的容器。 |
--privileged | 给予容器“特权模式”,几乎拥有和主机一样的访问权限,常用于需要访问硬件或挂载设备(如GPU、VNC桌面等)的情况。 |
-t | 为容器分配一个伪终端(tty),通常配合交互式运行使用(即使这里没有 -i 也可以查看输出)。 |
--name colmap_vnc | 为容器指定一个名称, |
--gpus all | 将宿主机的所有 GPU 显卡暴露给容器,要求 nvidia-docker 或 Docker + NVIDIA 容器运行时。 |
-p 5901:5901 | 将宿主机的 5901 端口映射到容器的 5901 端口, |
-v /media/...:/workspace | 将宿主机路径 /media/vr716/.../docker_colmap 挂载到容器内 /workspace ,实现数据共享。 |
colmap_docker:v2_vnc | 使用的镜像名 |
2.安装x11
在 Linux 系统中安装最小化图形界面环境,若只安装x11,也可以通过ssh -x连接后显示图形程序。
apt-get install xorg openbox
3.Docker 容器中安装一个完整的图形桌面(XFCE)和 VNC 远程桌面服务器(TightVNC)
apt update
apt install xfce4 xfce4-goodies
apt install tightvncserver
xfce4:
- 安装 XFCE 桌面环境 的核心组件。
- 是一种非常轻量、快速、资源占用低的桌面,适合服务器或低配置系统。
xfce4-goodies:
- 安装 附加工具集(如任务管理器、电源管理、插件等),使桌面更完整。
apt install tightvncserver
- 安装 TightVNC,是一种流行的、轻量的 VNC 服务器实现。
- 启动后会创建一个虚拟桌面,可以通过 VNC Viewer 远程连接。
4.配置vncservice
设置 VNC 密码(首次运行):
vncserver
停止 VNC 会话(假设是 :1):
vncserver -kill :1rm -f /tmp/.X1-lock
配置启动脚本,指定桌面环境(修改 ~/.vnc/xstartup):
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
赋予执行权限:
chmod +x ~/.vnc/xstartup
重新启动 VNC:
vncserver :1 -geometry 1920x1080 -depth 24
5.本地安装VNC Viewer连接
VNC Viewer下载地址: https://www.realvnc.com/en/connect/download/viewer
安装完成后,启动VNC Viewer,在上方输入框中输入ip:端口号并确定,弹出的警告窗口选择Continue,然后输入密码即可。
参考连接:
使用VNC可视化Docker容器_docker vnc-CSDN博客
VNC Viewer安装教程(保姆级安装)-CSDN博客