docker服务器的图形显示方案

问题描述:一般docker实操时都是作为服务器,以字符方式交互,非常不方便。本人尝试各种图形解决方案,最终找到完美方案。

最初本人尝试过VNC和SSH方式,最终被否定了。1, 本来docker服务器是很小的,但下载了VNC  SSHD服务器和全套的窗口管理器后变得很大。2,在docker服务器中运行窗口管理器违背了作了服务器要求简单的初衷。3, 存在不完全兼容的问题,配置复杂。

后来想到LIUNX的X WINDOW系统本来就是C-S模式的,完全可以在服务器端执行程序的计算部分,将程序的显示部分放在图形终端上。以下只讲结果,不讲过程中的种种坑。(我是搞了好久才最终成功的,唉!!时间,我的时间啊!!)

 环境描述:

1,docker服务器为ubuntu14.4, 没有桌面环境------主机A   IP:172.17.0.2

2,图形终端ubuntu16.04,全套桌面环境--------------主机B   IP:172.17.0.1

概念描述:

主机A是服务器,但在X WINDOW模型中是X CLIENT。

主机B是远程终端,作为图形显示用,但在X WINDOW模型中是X SERVER。

操作如下:

1,主机A,root@6e1ce93e82b1:/# export DISPLAY=172.17.0.1:0.0       意思是图形输出重定向到主机B,缺省为DISPLAY=:0.0

2,主机B,sudo gedit /etc/lightdm/lightdm.conf      增加一行    xserver-allow-tcp=true

3,主机B,sudo systemctl restart lightdm               

4,主机B,netstat|grep tcp    应有如下类似的一行 “ tcp        0      0 172.17.0.1:x11          172.17.0.2:49672        ESTABLISHED”

5,主机B,  xhost  +                注意加号前应有空格

6,主机A,root@6e1ce93e82b1:/# xclock                       此时在主机B上可以看到一个在运行中的时钟图形

至此完成!


最近使用上述方法不行了,可能是因为直接TCP传输存在安全隐患,所以必须通过加密方式传输,比如SSH等,下面直接上代码(命令):

  1. docker run -it ubuntu /bin/bash  (下面命令在此容器中执行)
  2. apt update
  3. apt install x11-apps nano ssh
  4. nano /etc/ssh/sshd_config   (修改下面三处)
    1. PermitRootLogin yes
    2. X11Forwarding yes
    3. X11UseLocalhost no
  5. service ssh start
  6. passwd   
  7.  下面命令在x server中运行
  8. xhost +
  9. ssh -X root@172.17.0.2
  10. 下面命令在ssh中运行
  11. xclock

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值