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的變量並刷新。