[授权发表]基于 VNCServer + noVNC 构建 Docker 桌面系统

2023-05-16

by Falcon of TinyLab.org
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 即可访问。

效果图

[外链图片转存失败(img-rZI3OhF5-1562434258888)(http://www.tinylab.org/wp-content/uploads/2015/05/docker-desktop-with-vncserver+novnc.jpg)]

自主构建


$ 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 虚拟机控制台
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[授权发表]基于 VNCServer + noVNC 构建 Docker 桌面系统 的相关文章

随机推荐

  • Win11安装Ubuntu子系统(副图形化界面安装教程)

    大家都知道电脑可以安装Linux子系统 xff0c 今天我要给大家带来的是Ubuntu子系统的教程 1 系统配置 Edition Windows 11 Pro for Workstations Insider Preview Version
  • Python·Jupyter Notebook各种使用方法记录·持续更新

    Python Jupyter Notebook各种使用方法记录 持续更新 标签 xff08 空格分隔 xff09 xff1a Python PythonJupyter Notebook各种使用方法记录持续更新一 Jupyter NoteBo
  • 无人机地面站定制开发流程分享

    说到国外市场 xff0c 无人机市场堪称火爆 xff0c 究其原因 xff0c 是由于 Mission Planner的多功能性 xff0c 全方位涵盖了调试 飞行 模拟等各种功能 xff0c 但福祸相倚 xff0c Mission Pla
  • matlab函数之bsxfun

    bsxfun xff08 fun A B xff09 偶然间发现了这个函数 xff0c 强大得不得了呀 xff0c 它的作用是 xff1a 对两个矩阵A和B之间的每一个元素进行指定的计算 xff08 函数fun指定 xff09 xff1b
  • PyCharm使用技巧记录(一)如何查看变量

    为了方便自己以后查阅 xff0c 记录下使用PyCharm时的一些小技巧 正在学习Python xff0c 在调试Python程序时 xff0c 遇到了一个非常大的问题 xff1a 如何能够方便地查看变量的取值呢 xff1f 由于使用mat
  • 如何在ubuntu下使用Github?

    安装Git 一个全新的ubunt系统 xff0c 需要安装Git xff08 系统是不具有该工具的 xff09 xff0c 方法如下 xff1a 在terminel中输入如下命令 xff1a sudo apt span class hljs
  • Docker学习系列(一):windows下安装docker

    本文目录如下 windows按照docker的基本要求具体安装步骤开始使用安装远程连接工具连接docker安装中遇到的问题Docker的更新Docker中的jupyterwindows下使用docker的常用命令 windows下安装doc
  • Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项

    最近发现极客学院docker教程 xff0c 还不错 xff0c 可以参考 1 Dockerhub下载镜像 注 xff1a Dockerhub地址 有两种方式可以获得新的镜像 直接从dockerhub下载编译好的image xff08 该编
  • 安装visual studio 2012,并配置opencv

    在同学的帮助下 xff0c 终于成功配置了vs 43 opencv xff0c 将详细过程记录在此 xff0c 方便以后查阅 参考1 本文目录 安装vs2012安装opencv在vs2012中配置opencv测试opencv是否配置成功关于
  • Ubuntu下如何安装TensorFlow

    本文目录 引言基于Anaconda的tensorflow安装 1 下载linux版本的Anaconda安装包2 安装Anaconda 利用anaconda安装tensorflow 1 建立一个 conda 计算环境2 激活环境使用 cond
  • Visualizing and Understanding Convolutional Networks

    Matthew D Zeiler xff0c Rob Fergus Visualizing and Understanding Convolutional Networks CVPR2014 论文下载 推荐一篇比较好的blog xff1a
  • 对极几何基本概念

    对极几何 xff08 Epipolar Geometry xff09 描述的是两幅视图之间的内在射影关系 xff0c 与外部场景无关 xff0c 只依赖于摄像机内参数和这两幅试图之间的的相对姿态 什么是对极几何粗略概念对极几何相关的一个重要
  • Python·Win10通过Anaconda安装python和Jupyter(python2.7为例)

    Python Win10通过Anaconda安装python和Jupyter xff08 python2 7为例 xff09 标签 xff08 空格分隔 xff09 xff1a 软件安装 管理 使用 Python 本文主要讨论如何利用Ana
  • Ubuntu14.04安装build-essential失败,包依赖问题如何解决?

    正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态信息 完成 有一些软件包无法被安装 如果您用的是 unstable 发行版 xff0c 这也许是 因为系统无法达到您要求的状态造成的 该版本中可能会有一些您需要的软件 包尚未
  • 最优化理论·非线性最小二乘

    最优化理论 非线性最小二乘 标签 xff08 空格分隔 xff09 xff1a 数学 非线性最小二乘问题是椭圆拟合中最易遇到的优化问题 xff0c 本文主要对非线性二乘的基本分析做简单介绍 1 什么是最小二乘问题 目标函数能够写为m个函数平
  • 所有线段的交点-初级篇

    所有线段的交点 初级篇 标签 xff08 空格分隔 xff09 xff1a 计算机视觉 图形学 所有线段的交点 初级篇 参考 xff1a 计算几何 算法与应用 邓俊辉 译 清华大学出版社 本文以一个小例子介绍如何计算所有线段交点 xff0c
  • 服务器docker使用

    这篇文章是我给自己的一个记录 xff0c 有些名词可能写的不专业 xff0c 请见谅 docker里面有两个概念 xff0c 一个是镜像 xff0c 一个是容器 镜像可以看做是类 xff0c 容器就是类的实例 在学院的服务器上 xff0c
  • MPC模型预测控制

    这篇主要讲一下模型预测控制 xff0c 如果对PID控制了解的同学 xff0c 那效果更好 如果不了解PID控制 xff0c 还是熟悉下比较好 模型预测控制 xff0c 顾名思义 xff0c 基于模型 xff0c 预测未来 xff0c 进行
  • MPC自学资料总结

    1 书籍 xff1a 无人驾驶车辆模型预测控制 2 视频 xff1a https ww2 mathworks cn videos understanding model predictive control part 1 why use m
  • [授权发表]基于 VNCServer + noVNC 构建 Docker 桌面系统

    by Falcon of TinyLab org 2015 05 02 最初发表 xff1a 泰晓科技 聚焦嵌入式 Linux xff0c 追本溯源 xff0c 见微知著 xff01 原文链接 xff1a 基于 VNCServer 43 n