springboot中的dockerfile使用

 更新时间:2021年12月14日 12:07:15   作者:JavaUpgrade  
这篇文章主要介绍了springboot中的dockerfile使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

环境

  • MAC
  • Centos7
  • JDK8
  • SpringBoot
  • Dockerfile

一、创建springboot项目

项目结构

上面是springboot的项目结构。

选择Initalizr Service URL

  • 创建springboot项目的时候,选择https://start.aliyun.com,速度比默认的快好几倍。
  • https://start.spring.io/
  • https://start.aliyun.com

在这里插入图片描述

二、创建Dockerfile文件

在这里插入图片描述

Dockerfile内容如下:

# 该镜像需要依赖的基础镜像
FROM lhl-docker-java8:1.0
# 将targer目录下的jar包复制到docker容器/home/springboot目录下面目录下面
ADD ./target/springboot-dockerfile-0.0.1-SNAPSHOT.jar /home/springboot/springboot-dockerfile.jar
# 声明服务运行在8080端口
EXPOSE 8080
# 执行命令
CMD ["java","-jar","/home/springboot/springboot-dockerfile.jar"]
# 指定维护者名称
MAINTAINER Mirror 393015989@qq.com

三、Springboot用maven打包

在这里插入图片描述

用maven install命令打包

会在target目录下生成jar包

遇到的坑

java -jar 命令启动项目的时候,提示找不到主文件

解决办法

pom.xml中添加如下配置,如果pom.xml中已经有了,就覆盖一下

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

四、制作Docker镜像

在这里插入图片描述

在IDEA的Terminal中,执行如下命令:

docker build -t lhl-springboot-docker:1.0 .

在这里插入图片描述

出现如上图结果,表示镜像创建成功了。可以用docker images命令查看

在这里插入图片描述

五、创建Docker容器并启动

执行如下命令:

docker run -dp 80:8080 --name lhl-springboot-env lhl-springboot-docker:1.1 

用我们刚才创建的镜像,创建名字叫lhl-springboot-env的容器,并启动

在这里插入图片描述

六、检验结果

在浏览器中输入localhost

在这里插入图片描述

成功,我通过主机的80端口,访问六容器里面的8080端口。

七、总结

lhl-docker-java8:1.0,这个镜像是我上篇文章做的基础Java环境镜像

在制作的过程中,遇到了springboot找不到主文件的问题,查看了网上那么多资料,只想说一句,写文章不是拷贝别人,要自己实践一下,通过了没问题了,在发表。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 对Java字符串与整形、浮点类型之间的相互转换方法总结

    对Java字符串与整形、浮点类型之间的相互转换方法总结

    今天小编就为大家分享一篇对Java字符串与整形、浮点类型之间的相互转换方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Java NumberFormat 类的详解及实例

    Java NumberFormat 类的详解及实例

    这篇文章主要介绍了Java NumberFormat 类的详解及实例的相关资料,数字格式化类按照本地风格习惯进行的数字显示,需要的朋友可以参考下
    2017-08-08
  • SpringBoot中自定义首页(默认页)及favicon的方法

    SpringBoot中自定义首页(默认页)及favicon的方法

    这篇文章主要介绍了SpringBoot中如何自定义首页(默认页)及favicon,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 详解SpringSecurity如何实现前后端分离

    详解SpringSecurity如何实现前后端分离

    这篇文章主要为大家介绍了详解SpringSecurity如何实现前后端分离,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 深入解析Apache Kafka实时流处理平台

    深入解析Apache Kafka实时流处理平台

    这篇文章主要为大家介绍了Apache Kafka实时流处理平台深入解析,从基本概念到实战操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Java实现开箱即用的redis分布式锁

    Java实现开箱即用的redis分布式锁

    这篇文章主要为大家详细介绍了如何使用Java实现开箱即用的基于redis的分布式锁,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以收藏一下
    2022-12-12
  • Java之多个线程顺序循环执行的几种实现

    Java之多个线程顺序循环执行的几种实现

    这篇文章主要介绍了Java之多个线程顺序循环执行的几种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 如何解决Java多线程死锁问题

    如何解决Java多线程死锁问题

    死锁是一个很严重的、必须要引起重视的问题,本文主要介绍了死锁的定义,解决方法和面试会遇到的问题,感兴趣的可以了解一下
    2021-05-05
  • Java JVM运行时数据区(Run-Time Data Areas)

    Java JVM运行时数据区(Run-Time Data Areas)

    运行时数据区,是java虚拟机定义的在程序执行期间使用的各种运行时的数据区,通过JVM运行时数据区图例给大家展示的很详细,对JVM 运行时数据区相关知识感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • Java实现商城订单超时取消功能

    Java实现商城订单超时取消功能

    大多数的B2C商城项目都会有限时活动,当用户下单后都会有支付超时时间,当订单超时后订单的状态就会自动变成已取消 ,这个功能的实现有很多种方法,本文的实现方法适合大多数比较小的商城使用。具体实现方式可以跟随小编一起看看吧
    2019-12-12

最新评论