欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯!
问题描述:一般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,[email protected]:/# 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,[email protected]:/# xclock 此时在主机B上可以看到一个在运行中的时钟图形
至此完成!