目标:
帮助更好的理解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。
2.下载noVNC
yum install git
git clone git://github.com/kanaka/noVNC
执行步骤:
Step1. 执行 ‘docker images’列出本地所有镜像。
Step2 .执行’docker search desk’从·Docker Hub中搜索带有desk的镜像。
Step3. 执行’docker pull sevnew/ubuntu-xfce-vnc-desktop-chrome’从Docker Hub中拉取或者更新最新指定的镜像,操作类似我们常用的git。
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表示访问容器内部。
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
Step10. 打开网页,输入IP和端口,注意IP要替换成你主机的IP地址,端口为刚查出的5900默认密码ubuntu。
http://{host IP}:5000/vnc.html?host={host IP}&port=5000