云计算百科
云计算领域专业知识百科平台

docker的使用与服务器可视化

        这篇文章解决的重点是,如何通过windows,或者ubuntu,访问服务器,并且把服务器的docker容器里的内容远程可视化出来,这种方法并不能对docker进行桌面可视化,但是可以保证弹出的窗口是可视化的,例如gedit,gazebo,rviz这些内容。

效果展示:

一、可视化配置

服务器可视化需要使用到Mobaxterm软件,下载地址如下:MobaXterm free Xserver and tabbed SSH client for Windows

下载完成后使用Mobaxterm打开设置,进行如下配置:

配置完毕后,使用ssh登录服务器,输入:

xhost +

解除Xserver的访问限制。 每次登录服务器后需确保执行,否则后续运行算法时不能可视化界面,并且会报错: QXcbConnection: Could not connect to display localhost:10.0 如果屏幕输出: access control disabled, clients can connect from any host ,则配置无误。

最后输入

xclock

如果能弹出一个时钟窗口,则表示可视化配置成功:

二、docker使用

首先使用

docker images查询已有镜像

由于使用的是ssh连接服务器,使用docker挂载到自己的目录使用:

sudo docker run -it -p 50003:22 –gpus all -v  /your_name:/data –device=/dev/dri –group-add video –volume=/tmp/.X11-unix:/tmp/.X11-unix  –env="DISPLAY=$DISPLAY" –env="QT_X11_NO_MITSHM=1" –name=ros_noetic -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all osrf/ros:noetic-desktop-full  /bin/bash

/home/you_name这里需要修改为自己服务器上使用的文件路径,这回将其将其挂载到容器的/data目录。

osrf/ros:noetic-desktop-full 表示使用的是名字为osrf/ros,标签为noetic-desktop-full的镜像。

–name=ros_noetic: 为容器指定一个名称ros_noetic,可以任意取 –device=/dev/dri: 将主机的/dev/dri设备添加到容器中,通常用于图形加速。 –group-add video: 将容器的用户添加到主机的video组,通常与图形设备相关。 –volume=/tmp/.X11-unix:/tmp/.X11-unix: 将主机的X11 Unix套接字目录挂载到容器中,允许容器显示X11应用程序。 –env=“DISPLAY=$DISPLAY”: 设置环境变量DISPLAY,用于X11应用程序定位X服务器。 –env=“QT_X11_NO_MITSHM=1”: 禁用QT的MIT-SHM扩展,该扩展在某些X服务器配置中可能会导致问题。(必须加)

经过上述配置后,可以在/data文件夹下看到挂载目录下的文件:

使用ctrl+D或者输入exit即可退出容器,推出容器后,使用 docker ps -a 即可看到刚刚创建的容器

若是想要再次进入,使用 sudo docker start -ia id 即可进入,例如:

sudo docker start -ia b91b6df3c30e

再次进入容器后再次输入xclock查看是否能接收到服务器的窗口,若是出现

表示并未安装 ,需要先安装:

首先更新软件包列表

sudo apt update

安装xclock。在终端中输入以下命令来安装xclock:

sudo apt install x11-apps

 再次输入xclock测试,若是能够弹出时钟窗口,则表示配置完毕了。

若是出现以下报错,则需要配置bashrc或者/etc/profile

 1、配置配置.bashrc :使用: 在终端输入:

echo 'export DISPLAY=mobaxterm非本地DISPLAY端口:0.0' >> ~/.bashrc mobaxterm 非本地DISPLAY端口:0.0 查看方式:打开mobaxterm一个新页面,10.102.95.74:0.0 就是 “mobaxterm 非本地DISPLAY端口:0.0 ” 然后:source ~/.bashrc

若是配置.bashrc后还是不行,配置/etc/profile 若是docker没有vi编辑器,使用 echo 'export DISPLAY=10.102.95.74:0.0' >> /etc/profile 最后:source /etc/profile注:如果之后运行rviz、gazebo无法显示,可以尝试看看是否端口变了,更换端口后即可

补充:tmux使用

Tmux 可用于在一个终端窗口中运行多个终端会话。不仅如此,还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话。

使用sudo apt-get install tmux安装 运行ros 先使用tmux打开窗口

按下ctrl+b    再输入’%‘进行左右分屏,若是输入”则上下分配: 按下ctrl+d     则是关闭窗口

 到此、配置便结束了。

赞(0)
未经允许不得转载:网硕互联帮助中心 » docker的使用与服务器可视化
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!