docker 容器内部UI映射host

方法有很多, 目前我总计一个我自己尝试成功的方法,通过xpra。

Xpra可以看作是screentmux的图形版本,支持远程X11应用程序的显示和交互。

在远程服务器上,安装Xpra:

sudo apt-get install xpra

启动Xpra服务器会话:

xpra start :100

在本地机器上,安装并运行Xpra客户端,连接到远程服务器: 

xpra attach ssh:user@remote-server:100

这个进程会一直运行,shell keep住重新启动其他shell 

在远程服务器上,运行Docker容器命令,并设置DISPLAY环境变量为Xpra显示:

export DISPLAY=:100
xhost +local:root
docker run -it --rm \-e SDL_VIDEODRIVER=x11 \-e DISPLAY=$DISPLAY \--env='DISPLAY' \--gpus all \--ipc host \--privileged \--network host \-p 8080:8081 \-v /tmp/.X11-unix:/tmp/.X11-unix:rw \-v file_locations:/storage \-v /weights:/weights \openpcdet:cuda11 \xfce4-terminal --title=openPCDet

如果需要映射一个桌面, 则需要安装类似Xfce4这种基于X11开发的桌面ui,这里的实例仅仅针对内部的窗口映射到host. 

总结一下原理:
 

  • Xpra会话

    • 在远程服务器上启动一个Xpra会话,指定会话号,例如:100。Xpra会创建一个虚拟的X11显示,会话号用于标识这个会话。
  • 客户端连接

    • 在本地机器上使用Xpra客户端连接到远程服务器上的Xpra会话。这会将远程会话中的图形界面应用程序显示在本地机器上。
  • Docker容器配置

    • 在远程服务器上运行Docker容器时,通过设置环境变量DISPLAY:100,将Docker容器中的图形界面应用程序的显示输出到Xpra会话。
    • 使用xhost +local:root命令允许本地root用户访问X服务器,这样Docker容器(通常以root用户身份运行)就可以访问X11显示。
  • 数据流

    • Docker容器中的图形界面应用程序通过Xpra会话显示在远程服务器上。
    • Xpra会话将图形界面数据传输到本地机器上,显示在本地的Xpra客户端中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码设计模式:一句话直击内涵与意义、极简代码示例、基础3类27种,以及更多概念与视角

有些设计模式日用而不知,有些设计模式看似概念复杂实则内核简单,还有些设计模式则化繁为简直至少即是多——本文,将在极简形式下,传递出基础设计模式最核心的基本思想,一共3类27种,即:创建型模式…

Yolov8网络结构学习

详解YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出/部署 深入解析YOLOv8:网络结构与推理过程 YOLO? You Know! --YOLOV8详解 一:yolov8总体结构 1.Backbone:它采用了一系列卷积和 反卷积层只来提取特征,同时也使用了残差连接和…

C# —— HashTable

集合collections命名空间,专门进行一系列的数据存储和检索的类,主要包含了:堆栈、和队列、list、ArrayList、数组 HashTable 字典 storeList 排序列表等类 Array 数组 长度固定, 类型固定 通过索引值来进行访问 ArrayList动态数组&#xff0c…

网站开发:使用VScode安装yarn包和运行前端项目

一、首先打开PowerShell-管理员身份运行ISE 输入命令: set-ExecutionPolicy RemoteSigned 选择“全是”,表示允许在本地计算机上运行由本地用户创建的脚本,没有报错就行了 二、接着打开VScode集成终端 输入 npm install -g yarn 再次输入以…

小程序-3(页面导航+页面事件+生命周期+WXS)

目录 1.页面导航 声明式导航 导航到tabBar页面 导航到非tabBar页面 后退导航 编程式导航 后退导航 导航传参 声明式导航传参 编程式导航传参 在onload中接收导航参数 2.页面事件 下拉刷新 停止下拉刷新的效果 ​编辑 上拉触底 配置上拉触底距离 上拉触底的节…

js补环境系列之剖析:原型、原型对象、实例对象三者互相转化(不讲废话、全是干货)

【作者主页】:小鱼神1024 【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 思考下:js补环境中,什么场景会用到原型、原型对象、实例对象? 举…

【前端异步问题】通过Promise.all()解决异步取值问题

场景 有一个对象数组itemList,数组中的对象有的有属性attr,有的没有。没有属性a的对象需要通过调用接口获取并赋值给相应对象。 再将处理完后的对象数组,传入另一个接口中。 let itemList [{ id: 0, attr: 雨伞},{ id: 1, attr: null},{ id: 2, attr: 水杯},{ id: …

【用户投稿】使用 SeaTunnel 进行 HTTP 同步到 Doris 实战经验分享

需求背景 由于我司的项目中需要接入不同的数据源的数据到数仓中,在选择了众多的产品中最后选择了Apache SeaTunnel,对比参考 目前我这边使用的接口,暂时没有接口认证,如果需要接口认证的方式接入数据,再做讨论及测试…

谈谈大数据采集和常见问题

01 什么是数据采集 数据采集是大数据的基石,不论是现在的互联网公司,物联网公司或者传统的IT公司,每个业务流程环节都会产生大量的数据,同时用户操作的日志也会产生大量的数据,为了将这些结构化和非结构化的数据进行…

[C/C++入门][for]24、菲波那契数列

斐波那契数列是数学中的一个经典数列,以其独特的递归性质而闻名。 数列的前两项通常是0和1(或者有时从1开始,当然这个不是强制要求),之后的每一项都是前两项的和。数列的前几项如下所示: 0, 1, 1, 2, 3, …

docker网络互联

最近学习docker的时候发现多了很多网卡,这些似乎都和docker有关,所以我便往下深入了解了一番; 一、docker网卡 docker 0是安装 docker 的时候生成的虚拟网桥,它在内核层连通了其他物理或者虚拟网卡,这就可以将所…

AI发展下的伦理挑战,应当如何应对?

AI发展下的伦理挑战,应当如何应对? 人工智能飞速发展的同时,也逐渐暴露出侵犯数据隐私、制造“信息茧房”等种种伦理风险。随着AI技术在社会各个领域的广泛应用,关于AI伦理和隐私保护问题日趋凸显。尽管国外已出台系列法规来规范…

常用优秀内网穿透工具(实测详细版)

文章目录 1、前言2、安装Nginx3、配置Nginx4、启动Nginx服务4.1、配置登录页面 5、内网穿透5.1、cpolar5.1.1、cpolar软件安装5.1.2、cpolar穿透 5.2、Ngrok5.2.1、Ngrok安装5.2.2、随机域名5.2.3、固定域名5.2.4、前后端服务端口 5.3、NatApp5.4、Frp5.4.1、下载Frp5.4.2、暴露…

自动发卡机器人来看:生成式AI的未来,是聊天还是代理?

引言 今天我们要聊聊一个有趣的话题:生成式AI的未来究竟是在聊天系统(Chat)中展现智慧,还是在自主代理(Agent)中体现能力? 一、生成式AI,你是谁? 首先,生成…

【数据结构】--- 栈和队列

前言 前面学习了数据结构的顺序表、单链表、双向循环链表这些结构;现在就来学习栈和队列,这里可以简单的说栈和队列是具有特殊化的线性表 一、栈 1.1、栈的概念和结构 栈是一种遵循先入后出逻辑的线性数据结构。 栈是一种特殊的线性表,它只允…

vivado FFT IP Core

文章目录 前言FFT IP 接口介绍接口简介tdata 格式说明 其他细节关于计算精度及缩放系数计算溢出架构选择数据顺序实时/非实时模式数据输入输出时序关于配置信息的应用时间节点 FFT IP 例化介绍控制代码实现 & 测试参考文献 前言 由于计算资源受限,准备将上位机 …

【漏洞复现】泛微E-Cology WorkflowServiceXml SQL注入漏洞

0x01 产品简介 泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理和移动办公。 0x02 漏洞概述 泛微OAE-Cology 接口/services/WorkflowServiceXml 存在SQL注入漏洞,可获取数据库权限,导致数据泄露…

Qt日志库QsLog使用教程

前言 最近项目中需要用到日志库。上一次项目中用到了log4qt库,这个库有个麻烦的点是要配置config文件,所以这次切换到了QsLog。用了后这个库的感受是,比较轻量级,嘎嘎好用,推荐一波。 下载QsLog库 https://github.c…

【踩坑日记】【教程】嵌入式 Linux 通过 nfs 下载出现 T T T T [Retry count exceeded: starting again]

文章目录 1 本篇文章解决的问题2 问题解决原理3 问题环境4 开启 ubuntu-20.04 的 nfs24.1 确认 nfs2 是否已经开启4.2 开启 nfs2 5 卸载 iptables5.1 卸载 iptables5.2 禁用 ufw5.3 尝试重新下载 6 原理分析6.1 nfs2 开启部分6.2 卸载 iptables 部分 7 后记7.1 拓扑结构一7.2 拓…

生成Elasticsearch xpack安全认证证书

首次启动 Elasticsearch 时,会为用户生成密码,并自动为用户配置 TLS ,可以随时调整 TLS 配置,更新节点证书 一、生成证书 1、在任意节点上进入 Elasticsearch 的安装目录,使用 elasticsearch-certutil 为集群生成 CA…