• 使用DockerMaven插件与Docker私有仓库来快速部署项目


    微服务部署有两种方法:
    (1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚
    拟机并拷贝至JDK容器。
    (2)通过Maven插件自动部署。
    对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这
    里学习如何自动部署,这也是企业实际开发中经常使用的方法。
     
    1.安装docker私有仓库

    1)拉取私有仓库 镜像

    docker pull registry
    

    2)启动私有仓库容器

    docker run -di --name=registry -p 5000:5000 registry
    

      

    3) 打开浏览器查看是否搭建成功

    (换成自己ip)192.168.40.128:5000/v2/_catalog
    

      

    4) docker信任私有仓库地址,修改daemon.json

    vim /etc/docker/daemon.json
    
    添加
    
    "insecure-registries":["192.168.40.128(换成你自己IP):5000"]
    

      

    5)重启Docker且启动仓库registry

    systemctl restart docker
    
    docker start registry
    

      

    2.安装基础镜像JDK.1.8

    1)  上传 linux的jdk1.8安装包

    2)创建目录并把jdk包移动到目录

    mkdir -p /usr/local/dockerjdk8
    
    mv jdk-8u171-linux-x64.tar.gz /usr/local/dockerjdk8
    
    cd /usr/local/dockerjdk8
    

      

    3)创建Dockerfile文件

    vi Dockerfile
    
    输入
    
    
    FROM centos:7
    MAINTAINER itcast
    WORKDIR /usr
    RUN mkdir /usr/local/java
    ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
    
    ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
    ENV JRE_HOME $JAVA_HOME/jre
    ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
    ENV PATH $JAVA_HOME/bin:$PATH
    

      

    4)构建镜像

    docker build -t='jdk1.8' .
    

      

     3.配置docker可以被远程访问

    1)备份一下docker.service文件

    cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
    

      

    2)在docker.service文件中ExecStart=后添加配置

    vim /lib/systemd/system/docker.service
    
    ExecStart=后添加配置
    
    -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    

      

    3)刷新配置,重启服务

    systemctl daemon-reload
    
    systemctl restart docker
    
    docker start registry
    

      

    4)在需要部署的项目的pom文件上面添加插件

    <build>
            <finalName>luojiang-demo</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <!--这里写上main方法所在类的路径-->
                    <configuration>
                        <mainClass>com.example.demo.LuojiangDemoApplication</mainClass>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin-->
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.4.13</version>
                    <configuration>
                    	 <!-- 镜像名称 -->
                        <imageName>服务器的ip:5000/${project.artifactId}:${project.version}</imageName>
                         <!-- 基于**镜像 -->
                        <baseImage>jdk1.8</baseImage>
                        <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}
                                </directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                        <dockerHost>http://私服所在服务器ip:2375</dockerHost>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

      

    5)本地打包或执行构建推送命令

    mvn install
    
    mvn package docker:build -DpushImage
    

      

    6)查看上传的docker镜像, 查看私有仓库镜像

    docker images
    

     浏览器中访问

    (你自己的IP)192.168.40.128:5000/v2/_catalog
    

      

    7) 启动并测试上传的系统

    docker run -di --name=base -p 8080:8080 192.168.40.128:5000/springboot_v2:2.0.0.RELEASE(宿主机端口:容器端口 镜像名称:版本号)
    

      

  • 相关阅读:
    MongoDB 分片管理(不定时更新)
    MongoDB 索引相关知识
    MySQL字符集转换引发插入乱码问题
    MongoDB 分片的原理、搭建、应用
    MongoDB 数据库管理(不定时更新)
    理解和解决MySQL乱码问题【转】
    C#获取Web和非Web程序的目录
    C#调用XmlSerializer序列化时生成CDATA节点解决方法
    转载:windiws server 2008R2 IIS7.5 设置win7 IIS7设置,文件夹权限配置,Authenticated Users,支持asp temp
    移动端日历控件 mobiscroll 的简单使用、参数设置
  • 原文地址:https://www.cnblogs.com/shifu204/p/13173622.html
Copyright © 2020-2023  润新知