Docker容器部署ONOS控制器教程_数据库恢复的重要文

日期:2014-12-12 / 人气: / 来源:网络

前段时间,网站出了李呈一篇文章《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解析

Shell $ sudo apt-get install apt-transport-https
1 $ sudo apt-get install apt-transport-https

2、添加Docker repository key到本地keychain

Shell $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
1 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

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

Shell $ sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" $ sudo apt-get update $ sudo apt-get install lxc-docker
123 $ sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list"$ sudo apt-get update$ sudo apt-get install lxc-docker

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

Shell $ curl -sSL https://get.docker.com/ubuntu/ | sudo sh
1 $ curl -sSL https://get.docker.com/ubuntu/ | sudo sh

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

Shell $ sudo docker run -i -t ubuntu /bin/bash
1 $ sudo docker run -i -t ubuntu /bin/bash

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

2 获取ONOS镜像

2.1 搜索镜像

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

2.2 下载镜像

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

Shell # docker pull ywang1007/onos-buildenv
1 # docker pull ywang1007/onos-buildenv

2.3 查看镜像

查看已经下载好的镜像。

Shell # docker images
1 # docker images

3 创建容器

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

Shell # docker run -i -t -p 0.0.0.0:6633:6633 -p 0.0.0.0:8181:8181 --name ONOS ywang1007/onos-buildenv /bin/bash
1 # docker run -i -t -p 0.0.0.0:6633:6633  -p 0.0.0.0:8181:8181 --name ONOS ywang1007/onos-buildenv /bin/bash

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

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

4 部署ONOS控制器

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

4.1 设置ONOS运行环境

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

Java8已经安装。

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

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

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

Shell export ONOS_ROOT=/home/onos/onos export KARAF_ROOT=/home/onos/Applications/apache-karaf-3.0.2 export JAVA_HOME=/usr/lib/jvm/java-8-oracle export M2_HOME=/home/onos/Applications/apache-maven-3.2.2 export PATH=$PATH:$M2_HOME/bin
12345 export ONOS_ROOT=/home/onos/onosexport KARAF_ROOT=/home/onos/Applications/apache-karaf-3.0.2export JAVA_HOME=/usr/lib/jvm/java-8-oracleexport M2_HOME=/home/onos/Applications/apache-maven-3.2.2export PATH=$PATH:$M2_HOME/bin

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

Shell # source /etc/profile # source $ONOS_ROOT/tools/dev/bash_profile
12 # source /etc/profile# source $ONOS_ROOT/tools/dev/bash_profile

4.2 初始化ONOS文件

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

Shell ,mvn:org.onosproject/onos-features/1.0.0/xml/features
1 ,mvn:org.onosproject/onos-features/1.0.0/xml/features

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

Shell ,onos-api,onos-core-trivial,onos-cli,onos-openflow,onos-app-fwd,onos-app-mobility,onos-gui
1 ,onos-api,onos-core-trivial,onos-cli,onos-openflow,onos-app-fwd,onos-app-mobility,onos-gui

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

4.3 构建ONOS

进入ONOS主目录,构建ONOS:

Shell # cd /home/onos/onos # mvn clean install
12 # cd  /home/onos/onos# mvn clean install

4.4 运行ONOS

运行ONOS,使用如下命令:

Shell # karaf clean
1 # karaf clean

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

Shell # netstat -anput|grep 6633
1 # netstat -anput|grep 6633
Shell # netstat -anput|grep 8181
1 # netstat -anput|grep 8181

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

4.5 测试ONOS

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

Shell # mn --topo tree,depth=2,fanout=3 --mac --controller=remote,ip=192.168.5.125,port=6633 --switch ovsk,protocols=OpenFlow13
1 # mn --topo tree,depth=2,fanout=3  --mac  --controller=remote,ip=192.168.5.125,port=6633 --switch ovsk,protocols=OpenFlow13

测试Mininet的主机是否通信。

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

5 上传镜像

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

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

Shell # docker export ONOS > onos-1.0.0.tar
1 # docker export ONOS > onos-1.0.0.tar

2、将tar文件导入镜像

Shell # cat onos-1.0.0.tar |docker import - ywang1007/onos-1.0.0:sdn
1 # cat onos-1.0.0.tar |docker import - ywang1007/onos-1.0.0:sdn

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

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

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

CentOS系统安装后如何关闭不需要的服务

导读:service smartd stopchkconfig smartd off 服务说明:smartd检查硬盘故障,虚拟的硬盘是无法用这个服务来检查,只对实体的装置才有用。1.停止服务service apmd stopservice autofs stopse

MySQL数据库,CentOS,

作者:管理员




现在致电4006-2991-90 OR 查看更多联系方式 →

Go To Top 回顶部