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

     

  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/tugeler/p/7016240.html
Copyright © 2011-2022 走看看