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


由於工作需要,在看OpenDaylight (一個SDN的開源控制器)

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

Turorail文檔為對應的項目提供了VM鏡像,剛好最近也在看Docker,遂決定制作一個docker鏡像,方便、快捷~

 

OK,開始准備環境


 

鏡像基於centos

>  docker run -it --name SDNHub_Opendaylight_Tutorial centos

 

更新

> yum update

 

安裝基本依賴(YUM安裝)

1、git - Tutorial項目代碼使用GIT托管 https://github.com/sdnhub/SDNHub_Opendaylight_Tutorial

2、lrzsz - 方便文件傳輸

3、wget - 需要下載文件

> yum install git lrzsz wget -y

 

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

1、JDK - OpenDaylight 使用Java語言開發,這里使用OracleJDK 並且使用Oracle官方推薦版本 JDK 1.8

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

 

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

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

2、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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM