Docker容器打包成鏡像 - OpenDaylight官方 SDN Hub Tutorial VM 的docker鏡像

因爲工做須要,在看OpenDaylight (一個SDN的開源控制器)html

官方Tutorial有一個比較基礎且介紹比較詳細的文檔(http://sdnhub.org/tutorials/opendaylight/ -這個文檔做爲入門OpenDaylight 很不錯,真心推薦)java

Turorail文檔爲對應的項目提供了VM鏡像,恰好最近也在看Docker,遂決定製做一個docker鏡像,方便、快捷~linux

 

OK,開始準備環境git


 

鏡像基於centosgithub

>  docker run -it --name SDNHub_Opendaylight_Tutorial centosdocker

 

更新apache

> yum updatecentos

 

安裝基本依賴(YUM安裝)bash

一、git - Tutorial項目代碼使用GIT託管 https://github.com/sdnhub/SDNHub_Opendaylight_Tutorialoracle

二、lrzsz - 方便文件傳輸

三、wget - 須要下載文件

> yum install git lrzsz wget -y

 

環境準備(從安裝包安裝)

一、JDK - OpenDaylight 使用Java語言開發,這裏使用OracleJDK 而且使用Oracle官方推薦版本 JDK 1.8

二、Maven - OpenDaylight 使用Maven進行包管理,而且要求Maven3.1.1版本以上(目前yum直接安裝的maven是3.0.5),這裏須要從官網下載安裝

 

官網下載好JDK的RPM包和Maven的tar包

一、JDK - http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 目前最新版  8u131

二、Maven - http://maven.apache.org/download.cgi 目前最新版 3.5.0

 

使用rz命令將下載好的安裝包上牀到容器內

 

安裝rpm包(安裝後須要配置JAVA_HOME-Maven須要JAVA_HOME環境變量)

> yum localinstall jdk-8u131-linux-x64.rpm -y

配置環境變量

> vi ~/.bash_profile 

追加內容

export JAVA_HOME=/usr/java/jdk1.8.0_131

安裝Maven(解壓後配置環境變量便可)

> tar zxvf apache-maven-3.5.0-bin.tar.gz 

> vi ~/.bash_profile 

追加內容

export MAVEN_HOME=/apache-maven-3.5.0
export PATH=${PATH}:${MAVEN_HOME}/bin

使環境變量生效

>  source ~/.bash_profile

驗證Maven和java是否安裝成功

 

OK,接着克隆和編譯 SDNHub_Opendaylight_Tutorial 項目


 

克隆項目

> cd ~

> git clone https://github.com/sdnhub/SDNHub_Opendaylight_Tutorial.git

切換到項目目錄

cd SDNHub_Opendaylight_Tutorial

開始編譯

mvn install -nsu

 

Loooooong Waiting……

 

艾瑪!編譯報錯

[ERROR] Failed to execute goal org.opendaylight.yangtools:yang-maven-plugin:0.8.1-Beryllium-SR1:generate-sources (default) on project learning-switch-impl: Execution default of goal org.opendaylight.yangtools:yang-maven-plugin:0.8.1-Beryllium-SR1:generate-sources failed: Plugin org.opendaylight.yangtools:yang-maven-plugin:0.8.1-Beryllium-SR1 or one of its dependencies could not be resolved: Could not transfer artifact org.opendaylight.controller:yang-jmx-generator-plugin:jar:0.4.1-Beryllium-SR1 from/to opendaylight-release (http://nexus.opendaylight.org/content/repositories/opendaylight.release/): Connect to nexus.opendaylight.org:443 [nexus.opendaylight.org/72.3.167.142] failed: Connection timed out (Connection timed out) 

解決方案:

在爆棧網找到 https://stackoverflow.com/questions/36561406/maven-dependency-error-when-i-start-to-install-mvn-nsu/37322101#37322101

通過驗證,能夠解決該問題

> wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml

 

好,從新編譯

mvn install -nsu

 

完成~

 

 

 

OK,最後將製做好的容器打包成docker鏡像,並提交到Docker Hub ~


 

 

容器打包成鏡像

> docker commit cd1aef1d6c30 sdnhub_opendaylight_tutorial:1.0

 

查看鏡像

 

鏡像提交到docker hub

先申請DockerHub帳號 - https://hub.docker.com/

 

給存在於本地的鏡像打標籤,要帶上dockerhub 用戶名(若是最後不帶冒號加版本,就默認爲 :lastest版本)

>docker tag sdnhub_opendaylight_tutorial:1.0 guang384/sdnhub_opendaylight_tutorial

 

 

登陸DockerHub

> docker login

 

提交到dockerhub

> docker push guang384/sdnhub_opendaylight_tutorial

 

Waiting……

 

Done

 

 

相關文章
相關標籤/搜索