onos2.0构建docker image及启动集群

onos 构建docker image

1 前置安装(docker)

查看官网Docker CE

2 添加sdn用户(我这里直接建立了一个虚拟机,用户就是sdn,这样就不需要第3步)

#step1: 切换成 root登录
#step2: adduser username
adduser sdn
#step3: 跟随系统提示完成 以后操作

3 普通用户使用docker(这里主要是为了clusterCreate脚本里面的onos指令调用,sudo情况下不知道onos的路径)

# 1 首先创建docker用户组,如果docker用户组存在可以忽略
sudo groupadd docker

# 2 将当前ubuntu用户加入docker用户组
sudo gpasswd -a ${USER} docker

# 3 重启docker
sudo service docker restart

# 4 如果普通用户执行docker命令,如果提示get …… dial unix /var/run/docker.sock权限不够,则修改/var/run/docker.sock权限
sudo chmod a+rw /var/run/docker.sock
sudo chown sdn:sdn /home/sdn/.docker -R

4 构建onos docker image

cd /opt/onos
# 这里有关于onos的docker
# docker build -t image_name:tag Dockerfile_PATH .
# 这里的/opt/onos == Dockerfile_PATH
sudo docker build --network=host -t onos:2.0.1 .
sudo docker build  -t onos:2.0.1 .
# 运行的时候可能会报错,没有java 环境库
# 修改第一行
FROM picoded/ubuntu-openjdk-8-jdk as builder


5 docker相关指令

# 查看docker磁盘使用空间
sudo docker system df

# 删除指定容器
sudo docker stop [conatiner_id]
sudo docker rm [container_id]

# 删除指定镜像
sudo docker rmi [image_id]

# 停止所有的容器
sudo docker stop $(sudo docker ps -a -q)

# 删除所有的容器
sudo docker rm $(sudo docker ps -a -q)

#清理所有停止的容器
sudo docker container prune 

# 修改images名称
# docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
# 上传到自己的私有仓库
sudo docker push 13586969678/onos:v2.0.1

6 运行自己的docker,构建集群(官网上内容陈旧无效了,在gerrit仓库里面找docker发现了相关内容,这里要先利用DockerFile构建自己的镜像)

6.1 查看/onos/tools/tutorials/vm下的createCluster获知要修改的内容(这里要修改Atomix和onos相关的内容)

# 查看/onos/tools/tutorials/vm下的createCluster
# 修改ATOMIX_IMAGE
# 在onos中全局搜索atomix,获取相关的版本信息
# 在2.0.1里面是3.15

6.2 修改ATOMIX_IMAGE相关内容

# STEP 1 修改ATOMIX_IMAGE为3.1.5
ATOMIX_IMAGE=atomix/atomix:3.1.5

# STEP 2 拉取atomix镜像
sudo docker pull atomix/atomix:3.1.5

# STEP 3 查看脚本里面的docker指令,这里-v代表着挂载,
# 原来内容为/home/sdn/bin/config:/atomix $ATOMIX_IMAGE
# 意思是将主机/home/sdn/bin/config目录挂载到image的/atomix目录上。然后后面的配置文件从里面取

# 这里将/home/sdn/bin/config改为
/opt/onos/tools/tutorials/vm/config

6.3 拉取或使用新构建的onos images,修改createCluster脚本

# 我这里是拉取的先前生成好的image
sudo docker pull 13586969678/onos:v2.0.1

# 修改createCluster脚本
ONOS_IMAGE=13586969678/onos:v2.0.1

6.4 运行createCluster(前提是将当前用户加入到docker用户组)

./createCluster

6.5 销毁

./destroyCluster

清理(ssh容易引起问题)

# 登录某个节点 密码karaf onos-1是某个节点的名字
ssh -p 8101 karaf@`docker-ip onos-1`
# 删除秘钥
ssh-keygen -f "/home/vm/.ssh/known_hosts" -R [172.17.0.8]:8101
# 清理
./destroyCluster

转载请标明出处!!!!!!!

有用的可以点个赞,后续还会上新博客!!!!!!!

你可能感兴趣的:(SDN)