实现WEB虚拟机控制平台(Docker+noVNC)

目标:

帮助更好的理解Docker能做什么以及掌握基础的docker脚本。

掌握各大云计算平台WEB虚拟机控制平台的基本技术实现思路。

预计完成时间:1小时。

内容:

1. 使用Docker中的Ubuntu镜像启动一个Ubuntu容器。

2. 使用noVNC技术通过WEB浏览器模拟虚拟机控制Docker中启动的Ubuntu系统。noVNC正是我们需要的 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。

前置条件:

1.Docker安装&运行第一个Hello world镜像

本案例运行在CentOS7.0的环境下,如果你的linux系统未安装Docker,请参见下面链接安装:https://docs.docker.com/engine/installation/linux/centos/

安装完成后按照上面的指导启动docker,本案例使用的是Docker CE。

实现WEB虚拟机控制平台(Docker+noVNC)_第1张图片

2.下载noVNC

yum install git

git clone git://github.com/kanaka/noVNC


实现WEB虚拟机控制平台(Docker+noVNC)_第2张图片

执行步骤:

Step1. 执行 ‘docker images’列出本地所有镜像。

Step2 .执行’docker search desk’从·Docker Hub中搜索带有desk的镜像。

实现WEB虚拟机控制平台(Docker+noVNC)_第3张图片

Step3. 执行’docker pull sevnew/ubuntu-xfce-vnc-desktop-chrome’从Docker Hub中拉取或者更新最新指定的镜像,操作类似我们常用的git。

实现WEB虚拟机控制平台(Docker+noVNC)_第4张图片

Step4. 执行‘docker run --name alex -d sevnew/ubuntu-xfce-vnc-desktop-chrome’

run表示启动一个容器,--name alex表示容器名字是alex, -d表示将容器设置为守护进程即后台运行容器。

Step5. 执行’docker exec alex ifconfig–a’表示查看网卡ip。docker exec表示访问容器内部。

实现WEB虚拟机控制平台(Docker+noVNC)_第5张图片

Step6.执行’docker exec alex netstat–nplt’来查看vnc端口

Step7. 执行’git clone git://github.com/kanaka/noVNC’下载noVNC

Step8. 设置防火墙端口允许‘iptables -I INPUT -p tcp --dport 5000 -j ACCEPT’

Step9. 执行‘./noVNC/utils/launch.sh --listen 5000 --vnc 172.17.0.2:5900’运行noVNC

实现WEB虚拟机控制平台(Docker+noVNC)_第6张图片

Step10. 打开网页,输入IP和端口,注意IP要替换成你主机的IP地址,端口为刚查出的5900默认密码ubuntu。

http://{host IP}:5000/vnc.html?host={host IP}&port=5000

特别注意:{host IP}为你主机的IP不是docker的IP。

实现WEB虚拟机控制平台(Docker+noVNC)_第7张图片

你可能感兴趣的:(实现WEB虚拟机控制平台(Docker+noVNC))