zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    删除表中存在多条相同记录的方法
    .Net与设计模式之笔记一
    再来一个莫名其妙的错误(asp.net)
    水晶报表的5种表格设计模式(转)
    【web标准设计】学习、提高、欣赏网站推荐
    UML 对象模型图阅读指南 (转)
    attachEvent传递给其handler的一个默认参数
    ASP.NET2.0 在head中添加了代码块后出现的问题
    js技巧转义符"\"的妙用(转)
    VSS新建项目后导致项目组成员不能打开解决方案的解决方法
  • 原文地址:https://www.cnblogs.com/tugeler/p/7016240.html
Copyright © 2011-2022 走看看