Docker容器部署ONOS控制器教程


前段时间,网站出了李呈一篇文章《Docker部署基于Ryu的SDN环境》,写得很好。而12.5号ONOS控制器也正式发布了,今天正好有时间,所以试验了在Ubuntu Server 14.04 LTS 64-bit系统下,如何在Docker容器中部署ONOS控制器。一切顺利后,记录操作步骤,和大家分享,也请大家多拍砖。

1 安装Docker

安装docker的方法很简单,《Docker部署基于Ryu的SDN环境》写得很清楚,这里简单说下。

1、安装软件包apt-transport-https,使APT系统能够被https解析

2、添加Docker repository key到本地keychain

3、添加docker软件仓库到软件源,升级软件源,安装lxc-docker包

注:上述操作可以使用下面的脚本完成。

4、验证docker安装完成,可以使用下面命令测试

注:其他操作可以使用“docker –help”查看。

2 获取ONOS镜像

2.1 搜索镜像

执行“docker search onos”来搜索相关的镜像,可以从STARS来确定资源的好坏。但是选择“ywang1007/onos-buildenv”镜像,如下图。可能因为ONOS刚出来不久,还没有最完美的镜像。别急,先下载下来再说。

Docker search ONOS

2.2 下载镜像

下载选择的ONOS镜像到本地机器,操作步骤如下,这里需要花费一段时间。

下载ONOS到本地机器

2.3 查看镜像

查看已经下载好的镜像。

docker image

3 创建容器

创建容器使用下面的命令:

值得说的是,ONOS有web界面,端口是8181,为了可以页面访问ONOS,要做两个端口绑定。容器的6633端口绑定到主机的6633端口,容器的8181端口绑定到主机的8181端口。

创建好后,可以使用“docker ps -a”来查看

Docker ps -a

4 部署ONOS控制器

下面的操作说明如果在容器中部署ONOS控制器,方法类似于本网站中的《Ubuntu14.04源码安装ONOS》

4.1 设置ONOS运行环境

1、先了解容器中的环境和目录结构,大致如下。

Java8已经安装。

Java version版本

ONOS主目录在/home/onos目录下

onos ls

Karaf和maven在/home/onos/Applications目录下

列表maven和karaf

2、了解文件目录后,设置环境变量,编辑/etc/profile文件,在文件底部增加下面几行

3、执行命令,使环境变量生效。

4.2 初始化ONOS文件

编辑/home/onos/Applications/apache-karaf-3.0.2/etc/org.apache.karaf.features.cfg 文件。
修改featuresRepositories的值,添加红字字体部分。

红色部分1

修改featuresBoot的值,添加红色字体部分。

红色部分2

注:这里不明白的,可以参考《Ubuntu14.04源码安装ONOS》

4.3 构建ONOS

进入ONOS主目录,构建ONOS:

4.4 运行ONOS

运行ONOS,使用如下命令:

执行karaf命令

运行ONOS后,可以在容器的“宿主机”上,查看ONOS的6633和8181端口是否监听,操作如下:

6633监听端口查看

8181监听端口查看

如果上述操作都没有问题的话,可以访问ONOS的WEB,地址为http://your_host_ip:8181/onos/ui/index.html

ONOS Web first登录界面

4.5 测试ONOS

运行一台Mininet机器(和容器的主机要通信),然后创建一个拓扑,指定控制器为ONOS地址。值得说的是,控制器的IP要写容器所在主机的IP地址,原因详见《Docker部署基于Ryu的SDN环境》

测试Mininet的主机是否通信。

pingall通信

此时,ONOS的WEB页面也能看到拓扑,如下图:

ONOS登录图片

5 上传镜像

Docker可以自己制作镜像并上传,以便下次使用。上传镜像的步骤如下:

1、将部署了ONOS控制器的容器导出来,使用docker export container > file 命令。

2、将tar文件导入镜像

3、制作好的镜像可以用“docker images”命令查看

Docker image查看

注:如果有需要,还可以用“docker push”命令把镜像推送到Dockerhub。

本文仅做抛砖引玉之用,希望有兴趣的同学继续深挖。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/4963.html
分享到:
相关文章
条评论

登录后才可以评论

慕冰之寒 发表于14-12-12
11