[授权发表]基于 VNCServer + noVNC 构建 Docker 桌面系统
2015-05-13 00:17
507 查看
by Falcon of TinyLab.org
2015/05/02
最初发表:泰晓科技 – 聚焦嵌入式 Linux,追本溯源,见微知著!
原文链接:基于 VNCServer + noVNC 构建 Docker 桌面系统
评论说明:为更好地聚合大家的讨论,请到上面原文的评论区回复。
本文介绍另外一种 B/S 架构的 Docker 桌面系统,即基于 VNCServer + noVNC 构建一个可以通过浏览器直接访问的 Docker 桌面系统。
noVNC 被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。noVNC 采用 WebSockets 实现,但是当前蛮多 VNC 服务器都不支持 WebSockets,所以 noVNC 不能直连 VNC 服务器,而是需要开启一个代理来做 WebSockets 和 TCP sockets 之间的转换。这个代理叫做 websockify。
更多细节请访问末尾的参考资料。
注:
本地宿主机访问
远程访问
先获取 IP 地址
远程访问:
连接后,输入上面获得的密码
使用 noVNC 开发 Web 虚拟机控制台
2015/05/02
最初发表:泰晓科技 – 聚焦嵌入式 Linux,追本溯源,见微知著!
原文链接:基于 VNCServer + noVNC 构建 Docker 桌面系统
评论说明:为更好地聚合大家的讨论,请到上面原文的评论区回复。
简介
基于 ssh + Xpra 构建 Docker 桌面系统 刚介绍了如何通过 Ssh + Xpra 构建 C/S 架构的 Docker 桌面系统。本文介绍另外一种 B/S 架构的 Docker 桌面系统,即基于 VNCServer + noVNC 构建一个可以通过浏览器直接访问的 Docker 桌面系统。
noVNC
VNCServer 是一个为了满足分布式用户共享服务器资源,而在服务器开启的一项服务,对应的客户端软件有图形化客户端 VNCViewer,而 noVNC 则是 HTML5 VNC 客户端,它采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现。noVNC 被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。noVNC 采用 WebSockets 实现,但是当前蛮多 VNC 服务器都不支持 WebSockets,所以 noVNC 不能直连 VNC 服务器,而是需要开启一个代理来做 WebSockets 和 TCP sockets 之间的转换。这个代理叫做 websockify。
更多细节请访问末尾的参考资料。
下载镜像:fcwu/docker-ubuntu-vnc-desktop
$ docker pull fcwu/docker-ubuntu-vnc-desktop
启动容器并加载 VNCServer 服务
$ CONTAINER_ID=$(docker run -d -p 6080:6080 dorowu/ubuntu-desktop-lxde-vnc)
获得登录密码
$ docker logs $CONTAINER_ID | sed -n 1p User: ubuntu Pass: ubuntu
注:
Pass后的字符串即为密码,这里为
ubuntu。
通过浏览器登录
测试过的浏览器有 Chrome。访问方式:本地宿主机访问
http://localhost:6080/vnc.html
远程访问
先获取 IP 地址
$ docker exec 8222763de ifconfig eth0 | grep "inet addr:" inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
远程访问:
http://172.17.0.1:6080/vnc.html
连接后,输入上面获得的密码
ubuntu即可访问。
效果图
自主构建
$ git clone https://github.com/fcwu/docker-ubuntu-vnc-desktop.git $ cd docker-ubuntu-vnc-desktop $ docker build -t tinylab/ubuntu-desktop-lxde-vnc .
参考资料
HTML 5案例研究:使用WebSockets、Canvas与JavaScript构建noVNC客户端使用 noVNC 开发 Web 虚拟机控制台
相关文章推荐
- [授权发表]基于 ssh + Xpra 构建 Docker 桌面系统
- [授权发表]基于 Docker 快速构建 Linux 0.11 实验环境
- Docker: Ubuntu使用VNC运行基于Docker容器里的桌面系统
- 基于busybox构建最小linux Docker镜像系统
- 构建docker高可用私有仓库基于Harbor开源系统
- VPS上使用Ubuntu server 14.04系统搭建Gnome桌面并用VNC连接
- noVNC构建web桌面系统
- 使用Dockerfile文件构建基于centOS系统的tomcat镜像
- nvidia-docker快速迁移caffe环境(GPU+VNCserver+lxde桌面)
- 基于开源Flash Server:Red5构建RTMP流媒体播放平台
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
- 基于AT91SAM9G20构建嵌入式Linux系统
- 基于IBM Tivoli TSM系统构建某局备份系统实施方案
- 基于kubernetes构建Docker集群管理详解
- 基于docker构建jenkins和svn服务(转)
- Centos7远程桌面 vnc/vnc-server的设置
- Linux下Vnc远程桌面Server配置教程
- 基于git maven的自动构建系统系列一
- 一个基于qt的桌面聊天系统的学习笔记(1)-邮件模块(1)邮件界面的初始化流程