Dockerfile实现客户端通过网页访问容器的桌面和伪终端,主要的工具是guacamole。
首先来介绍guacamole,Guacamole是一种基于HTML5和AJAX技术的vnc客户端,有了它就可以直接通过web浏览器,快速访问vnc server上的Xwindows系统界面了。优酷上有一段关于Guacamole的视频演示在http://v.youku.com/v_show/id_XMTg4ODgwNDg0.html
git上dockerfile代码:http://git.oschina.net/wangyufu/docker_guacamole
分为三个Dockerfile,执行的顺序:
- ubuntu-xfce-vnc-desktop 基础镜像是Ubuntu15.04
- jdk-tomcat 基础镜像是ubuntu-xfce-vnc-desktop
- guacamole 基础镜像是jdk-tomcat
第一个Dockerfile是安装基础镜像和一些桌面环境,第二个Dockerfile是基于ubuntu-xfce-vnc-desktop的镜像安装jdk和tomcat,因为guacamole需要java的环境支持,下面的就是安装guacamole。所以每个Dockerfile的代码中FROM需要自己改一下。
web显示桌面的分辨率需要先再ubuntu-xfce-vnc-desktop/supervisord.conf中的 command=/usr/bin/Xvfb :1 -screen 0 1280x720x16 #修改合适的分辨率
ssh的登录用户名,guacamole/startup.sh 修改创建的用户名和密码,guacamole/user-mapping.xml 修改为创建后的用户名和密码。
所有都完成后就可以登录了,启动容器,访问服务启动的地址和映射到容器的8080端口加路径为/guacamole
登入后进入管理界面:
选择ssh:
选择vnc:
在安装guacamole遇到的问题:
问题:启动tomcat时,日志报Invalid or unreadable WAR file : error in opening zip file
解决:安装zip的包
问题:启动tomcat时,日志报No guacamole.properties file found within GUACAMOLE_HOME or the classpath.
解决:创建一个新的用户家目录为tomcat的程序的目录并赋权限,在/etc/profile 下添加GUACAMOLE_HOME的变量并刷新。