SSH登录CentOS服务器并在Docker中运行和显示GUI程序的方法

SSH和Docker都是字符界面,以前都是通过字符界面登录服务器并运行Docker中的程序,将输出结果(视频或者图片)传回来进行结果查看和分析,这样效率太低了,于是周末研究下了这种方式下运行和显示GUI界面的方法。

一、客户端(Windows 10)安装XManger Power Suite7

官网网站:https://www.xshellcn.com/,下载XManager Power Suite 7,里面包含了XShell、XManager、Xftp、Xlpd等一揽子工具,非常方便。也可以通过本文后面的提供链接下载。

下载安装后配置XShell的会话设置,主要是远端ip地址、端口号、登录用户名、密码等选项,网上有很多教程,这里就不再叙述。值得一提的是X11 Forwarding一定要选择XManager,可以省去很多麻烦。

二、服务器(CentOs 7)端配置

服务器端有很多坑,尤其是Docker的配置,感谢https://blog.csdn.net/frankfishinwater/article/details/106143453?spm=1001.2014.3001.5501 这篇文章提供的帮助,才终于搞定。

1、CentOS服务器安装X11

XShell登录服务器后,运行

yum install -y xorg-x11-xauth xorg-x11-server-utils

配置 /etc/ssh/sshd_config文件,查找X11Forwarding yes,如果前面有注释,把注释去掉

查看主机的$DISPLAY环境变量 echo $DISPLAY,我显示的是localhost:10.0,表明当前终端号是10.0,记住该终端号,后面docker要用。

在服务器上安装一个图像查看程序运行一下,看看能否显示图形界面

yum install -y eog

eog <图片文件>

如果能够正常显示图片,说明服务器端的X11 Forwarding没有问题,ssh和XManager运行正常。

2、Docker配置

docker中显示有3个坑:

一是 docker run 要加上参数 --net=host

二是要加上 -e DISPLAY=:<终端号>    终端号就是前面查看的10.0

三是要加上 -e $HOME/.Xauthority:/root/.Xauthority    具体原因查看前面提到那篇博客文章

最终docker长这个样子:

docker run -it --name shit -v /etc/localtime:/etc/localtime:ro --net=host -e DISPLAY=:10.0 -v $HOME/.Xauthority:/root/.Xauthority ubuntu:18.04

在docker中安装eog并运行,就看到了GUI界面的显示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值