Dockerfile实现客户端通过网页访问容器的桌面和伪终端,主要的工具是guacamole

  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,执行的顺序:

  1. ubuntu-xfce-vnc-desktop 基础镜像是Ubuntu15.04
  2. jdk-tomcat 基础镜像是ubuntu-xfce-vnc-desktop
  3. 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的变量并刷新。

posted @ 2016-05-24 11:34  王宇夫  阅读(3214)  评论(2编辑  收藏  举报