当前位置: 首页 > ops >正文

显示docker桌面,vnc远程连接docker

目录

相关概念:

实现步骤:

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 :1

rm -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博客

http://www.xdnf.cn/news/8706.html

相关文章:

  • Android应用中设置非系统默认语言(使用Kotlin)
  • 机械师安装ubantu双系统:三、GPT分区安装Ubantu
  • 【医学影像 AI】医学影像 AI 入门:PyTorch 基础与数据加载
  • 并发编程艺术--AQS底层源码解析(一)
  • 计算机视觉---YOLOv2
  • [特殊字符] Function Calling 技术详解与 Qwen 模型实践指南
  • mqtt数据包举例
  • 博客摘录「 游戏开发笔记(九)——技能系统」2025年5月25日
  • SAP重塑云ERP应用套件
  • AI数据治理破局的战略重构
  • 【MPC控制】番外篇:MPC 与 机器学习/深度学习 —— 双雄会的相似与不同
  • 计算机网络学习(六)——UDP
  • 远程办公时代macOS访问解决方案:兼顾效率提升与安全防护的实用架构指南
  • 如何利用AI工具提升工作效率?
  • 2021年认证杯SPSSPRO杯数学建模B题(第二阶段)依巴谷星表中的毕星团求解全过程文档及程序
  • Mysql高版本(8.0及以后)Linux安装
  • 删除链表的倒数第N个结点--LeetCode
  • MySQL的存储引擎
  • 什么是 Spring MVC 的异步请求处理?
  • 如何在uniapp H5中实现路由守卫
  • JVM规范之栈帧
  • 15.1 【基础项目】使用 HTML、CSS 和 TypeScript 构建的简单计数器应用
  • LLM之Agent:Mem0的简介、安装和使用方法、案例应用之详细攻略
  • C# Windows Forms应用程序-002
  • # 使用 Hugging Face Transformers 和 PyTorch 实现信息抽取
  • 数据结构第2章 (竟成)
  • 神经网络加上注意力机制,精度反而下降,为什么会这样呢?注意力机制的本质是什么?如何正确使用注意力机制?注意力机制 | 深度学习
  • 清山垃圾的3个问题
  • 6.4.1最小生成树
  • 第二章网络io