spring boot项目生成docker镜像并完成容器部署的方法步骤

 更新时间:2020年10月22日 11:27:24   作者:why154285  
这篇文章主要介绍了spring boot项目生成docker镜像并完成容器部署的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、问题产生   

把spring boot项目生成的jar打成docker镜像并生成docker容器完成部署是比较简单方便的部署方式,而且部署过程很少会出错。

二、部署步骤

1.利用maven或者gradle完成打包工作,打成jar包的形式。

2.在项目中的任意位置创建Dockerfile文件,本人的文件如下:

FROM java:8
VOLUME /tmp
ADD front-1.0-SNAPSHOT.jar front.jar
RUN bash -c 'touch /front.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/front.jar"]

FROM java:8是指含有jdk1.8的镜像

VOLUE /tmp /tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录

ADD front-1.0-SNAPSHOT.jar front.jar

添加自己的项目到到front.jar中,注意:这里的包名要和pom文件中的包名一致。

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/front.jar"]

ENTRYPOINT是指容器运行后默认执行的命令。

3.上传自己的项目和Dockerfile文件到虚拟机,可以放在同一个目录下面

4.创建自己的镜像

docker build -t front:1.0-SNAPSHOT .

注意后面是有个点的。

显示创建成功,查看下镜像。

现在镜像就创建成功了。

5.生成docker容器

docker run -d -p 8080:8080 --name front front:1.0-SNAPSHOT

-d:后台运行容器

-p 8080:8080 主机的端口和docker容器中的端口做映射

front 自定义的容器名称

front:1.0-SNAPSHOT镜像名称和对应版本,如果没有指定版本,默认会去寻找lastest版本。

生成了容器的id,docker ps -a查看是否存在front容器。

是生成了容器,接下来启动就可以了。

到此这篇关于spring boot项目生成docker镜像并完成容器部署的方法步骤的文章就介绍到这了,更多相关spring boot生成docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java面试之线程通讯方式详解

    Java面试之线程通讯方式详解

    线程通信是指多个线程之间通过某种机制进行协调和交互,那为什么一个线程等待和通知机制就需要这么多的实现方式呢?别着急,下面小编来和大家仔细聊聊
    2023-08-08
  • 浅谈java中unmodifiableList方法的应用场景

    浅谈java中unmodifiableList方法的应用场景

    下面小编就为大家带来一篇浅谈java中unmodifiableList方法的应用场景。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • RocketMQ源码解析broker 启动流程

    RocketMQ源码解析broker 启动流程

    这篇文章主要为大家介绍了RocketMQ源码解析broker启动流程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java实现限流接口的示例详解

    Java实现限流接口的示例详解

    限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机,本文主要来和大家聊聊如何使用java实现限流接口,感兴趣的可以了解下
    2023-12-12
  • Java 超详细讲解SpringMVC拦截器

    Java 超详细讲解SpringMVC拦截器

    Spring MVC 的拦截器(Interceptor)与 Java Servlet 的过滤器(Filter)类似,它主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。本文将代码演示和文字描述详解拦截器的使用
    2022-04-04
  • Java多线程执行处理业务时间太久解决方法代码示例

    Java多线程执行处理业务时间太久解决方法代码示例

    这篇文章主要介绍了Java多线程执行处理业务时间太久解决方法代码示例的相关资料,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 深入理解JavaWeb中过滤器与监听器的应用

    深入理解JavaWeb中过滤器与监听器的应用

    这篇文章主要介绍了JavaWeb中过滤器与监听器的应用,过滤器能够对匹配的请求到达目标之前或返回响应之后增加一些处理代码,监听器是一个接口内容由我们实现,会在特定时间被调用,感兴趣想要详细了解可以参考下文
    2023-05-05
  • java中调用GDAL DLL的实现方法

    java中调用GDAL DLL的实现方法

    本篇文章是对java中调用GDAL DLL的实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Java 深入分析链表面试实例题目

    Java 深入分析链表面试实例题目

    链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,本篇带你通过两个实例题目来深入探索
    2022-03-03
  • Mybatis批处理、Mysql深分页操作

    Mybatis批处理、Mysql深分页操作

    这篇文章主要介绍了Mybatis批处理、Mysql深分页操作,Mybatis批量操作包括Foreach方式和ExecutorType.BATCH插入操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08

最新评论