ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

使用xshell启动带GUI的docker应用遇到的坑

2022-07-16 22:37:12  阅读:221  来源: 互联网

标签:GUI 16.0 文章 xshell docker DISPLAY MobaXterm


最近公司产品全面使用docker部署,而我们的一个应用服务底层使用了C++的QT的相关库,该库启动时,需要依赖可视化界面,这种问题,其实网上有很多教程,其实基本思路就是如何在docker中运行GUI程序,可以参考 林帆:Docker运行GUI软件的方法,可以参考https://blog.51cto.com/u_15069443/4228857这个文章,基本和原文差不多,我在处理这个问题的时候,也是使用的这个思路,当时直接在需要启动的容器增加了如下环境变量:

-v /etc/localtime:/etc/localtime:ro \

-v /tmp/.X11-unix:/tmp/.X11-unix \

-e DISPLAY=:16.0 \

-v $HOME/slides:/root/slides \

-v $HOME/.Xauthority:/root/.Xauthority \

--net=host \

其中的16.0,可以通过echo $DISPLAY查看得到

这个是在远程服务器上运行带GUI的容器命令,然而当时可能没有太仔细读懂上面的文章,巧合之下,反正是启动成功了,用的客户端工具是MobaXterm,有人会问为什么这个还跟客户端工具有关系呢?下面我会详细介绍!

之前一致在用MobaXterm,启动程序没有问题,然而最近使用Xshell进行远程部署时,发现原本可以起来的程序,开始报错,而这个错误就是QT相关的显示库找不到,说白了,也就是上面关于SSH共享的显示库,其实使用Xshell工具,没有成功!那为什么MobaXterm就可以,Xshell就不可以呢,带着这个问题,我查了一些资料,终于了解了,原来是MobaXterm本身就带有X11服务器,因此只需要通过SSH登录之后,便可以将本地的显示系统,共享给docker容器使用,而xshell则默认没有带,如果安装了xmanager,则会默认带有(没有验证),其实上面的文章中,已经给出了一个答案,可能因为当时巧合,使用MobaXterm成功了,没有再仔细查看文章,当然今天在其它文章我也找到了类似的答案,下面就是使用xshell进行远程部署带GUI的docker应用的具体步骤:

前面的步骤,请完全参照上面文章中的执行,执行完毕后,重要的步骤来了,

  • windows下载Xming的工具,安装,安装成功后会在电脑右下角,如下图所示:

                        

  • 在xshell中如下设置:

                   

其中的DISPLAY中配置为刚才Xming下的 :0.0,而在上面的环境变量的-e DISPLAY=:16.0的这个16.0是远程服务器中通过echo $DISPLAY获取的,跟这个0.0没有关系,如果不理解的可以参考上文章。通过这样设置之后,程序终于成功跑起来了,看来以后看文章的时候,还是要多注意!

标签:GUI,16.0,文章,xshell,docker,DISPLAY,MobaXterm
来源: https://www.cnblogs.com/share-gis/p/16485433.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有