zoukankan      html  css  js  c++  java
  • Docker将SpringBoot打成的jar包在docker环境中打包成镜像

    1.我的场景

      我开发了一个自己的博客项目,发现每次上传jar包执行java -jar 这个命令启动这个项目很麻烦,我又不想写脚本;我的数据库什么的等其他环境都是使用docker来安装的,发现 docker安装 我需要的开发环境真的很方便,都是别人做好的镜像,直接pull拉下来就好;然后启动镜像的时候做好端口映射以及安装目录的映射就好了,后面启动镜像很方便只需要docker start +容器id就好了,好了不多说,我们现在就开始打包spingboot项目吧。 

    2.打包springboot项目

    执行mvn package 命令,将项目使用maven打成jar包如下图:

    3.DockerFile配置内容

    FROM java:8-alpine
    ADD my-blog-4.0.0-SNAPSHOT.jar app.jar
    EXPOSE 28083
    ENTRYPOINT ["java","-jar","/app.jar"]

    第一行 需要java8环境的支持
    第二行 my-blog-4.0.0-SNAPSHOT.jar为你SpringBoot打包最终的成包名称,别名为app.jar
    第三行 容器对外映射的端口
    第四行,ENTRYPOINT 执行项目 app.jar

    4.将前面第二步打好的jar包和第三步编辑好的DockerFile文件上传至服务器(需在同一目录下)

    这边笔者的docker不是装在本机的,所以需要将这两个文件上传至服务器,如果你在本机有docker环境那么只需要放在一个目录下直接构建就可以了呢。

    5.构建docker镜像

    在存放jar包和DockerFile的目录下执行下面的命令,注意后面 有个小点不能少

    docker build -t my-blog .

    运行成功后如下图:

    看到上图 后就说明您的springboot项目打包成 docker镜像成功了,这个时候执行下面的命令可以查看你的 镜像:

    docker images

    看到这个的 时候,就说明我们的springboot jar包已经挂载了,下面就可以开始运行你的容器了:

    6.启动容器

    docker run -d -p 28083:28083 my-blog

    -p这个属性我这边详细说一下: 28083:28083的意思是将我宿主机的28083端口映射到容易端口28083,我在前面已经配置过这个端口了

    看到如下返回一串id就代表容器启动成功啦

  • 相关阅读:
    一个Work Stealing Pool线程池的实现
    一步一步解剖Libevent源代码
    一步一步学习堆排序算法
    一个通用的Makefile框架
    为什么我们知道那么多道理(理论),却依然处理不好目前的生活
    SQL
    走进Java Map家族 (1)
    Java数组协变与范型不变性
    尝鲜Java 12新特性:switch表达式
    android高级UI之PathMeasure<一>--Path测量基础(nextContour、getPosTan、getMatrix、getSegment)
  • 原文地址:https://www.cnblogs.com/MrXiaoAndDong/p/docker_package_jar.html
Copyright © 2011-2022 走看看