noVNC+VNCserver實現遠端訪問Docker容器桌面
阿新 • • 發佈:2018-11-01
一、實驗環境
主機:Ubuntu16.04
目標機:docker容器
說明:在主機Ubuntu16.04中安裝docker,並虛擬出一臺Ubuntu容器,將該容器作為要遠端訪問的目標機
二、實現過程
1.在docker容器中安裝vnc4server,並啟動vnc4server服務:
apt-get update
apt-get install vnc4server
apt-get install net-tools //安裝網路工具,用於檢視容器的IP地址
vnc4server //這裡會提示輸入密碼,要記住
紅框可以看出啟動2號桌面服務:
2.在主機Ubuntu(或centOS7)中安裝並配置noVNC:
sudo apt-get install git
git clone https://github.com/kanaka/noVNC
cd noVNC
./utils/launch.sh --vnc 172.17.0.2:5901
//172.17.0.2:為目標機docker容器的IP地址。
//5901:為目標機啟動vnc4server時啟動的1號服務
vi vnc_token //新建一個檔案,寫入要訪問的目標機的相關內容,格式為: 目標機名稱: IP:埠號
utils/websockify/websockify.py --web=./ --target-config vnc_tokens 6080 //執行上一步新建的內容。 **注意:執行該命令的終端不能關閉**
執行上述最後一條命令後結果(要切換到noVNC目錄下執行):
3.測試網站:
http://192.168.43.227:6080/vnc_auto.html?websockify/?token=host1
說明:192.168.43.227:為主機Ubuntu的IP地址
host1:為vnc_token檔案中寫入的目標機名稱
測試結果:
vnc_tokens檔案中內容格式:
4.後續需求說明
若需要去掉使用者登入後輸入密碼的介面,需要修改以下部分:
vnc_auto.html檔案中:
form.innerHTML += '<input type=password size=10 id="password_input" class="noVNC_status" value="123456">';
form.onsubmit = true;
紅框內為修改部分:
core/rbf.js檔案中:
this._rfb_password='123456'; //123456代表上面啟動vnc4server時輸入的密碼
紅框內為修改部分:
說明:所有原始碼已上傳到筆者GitHub上,歡迎follow、star。感謝!!!