欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > SpringBoot教程(三十一) | SpringBoot生成Docker镜像包

SpringBoot教程(三十一) | SpringBoot生成Docker镜像包

2025/6/24 7:01:50 来源:https://blog.csdn.net/qq_20236937/article/details/142597898  浏览:    关键词:SpringBoot教程(三十一) | SpringBoot生成Docker镜像包

SpringBoot教程(三十) | SpringBoot生成Docker镜像包

  • 前提
  • 方式一:spring-boot-maven-plugin 方式
  • 方式二:Dockfile 方式(推荐)

前提

如果你在 Windows 上,确保 Docker Desktop 已经启动并正在运行
在 Linux 上,确保 Docker 服务 已经启动并正在运行。

Docker Desktop提供了一个易于使用的图形用户界面(GUI),方便用户管理容器、镜像和卷等资源。用户可以通过GUI直观地查看容器的运行状态、日志输出和性能指标等信息。
用于Windows和Mac操作系统

还未安装Docker Desktop 具体请看 另一篇文章
SpringBoot教程(安装篇) | Docker Desktop的安装(Windows下的Docker环境)

方式一:spring-boot-maven-plugin 方式

前置条件:需要本地安装 Docker

在pom.xml 的 <build> 配置了 spring-boot-maven-plugin
你不需要写 Dockerfile,也不用操别的心,plugin 都帮你做了,例如 Spring 建议的安全、内存、性能等问题。

<build><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><!--主类的指定--><configuration><mainClass>com.example.springbootshiro.SpringbootShiroApplication</mainClass></configuration><!--执行定义--><executions><execution><id>repackage</id><goals><!--生成一个包含所有必要组件的可执行jar或war文件--><goal>repackage</goal></goals></execution></executions></plugin>
</build>

然后 你就可以里面有个springboot:build-image 的执行命令,它其实就是打Docker 镜像的命令
在这里插入图片描述
双击以后,单模块的我倒是执行成功了,多模块就构建失败了。

方式二:Dockfile 方式(推荐)

前置条件:
1.需要本地安装 Docker
2.要先打包

我这边的包如下:
在这里插入图片描述

然后新建Dockfile文件(没有后缀的)

FROM openjdk:8-jdk-alpine
EXPOSE 8888
ARG JAR_FILE=target/springboot-shiro-0.0.1-SNAPSHOT.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

注释说明:

  • FROM :使用openjdk:8-jdk-alpine作为基础镜像
  • EXPOSE :声明容器运行时监听的端口(主要用于文档和链接系统),不会强制容器监听某个端口,也不会自动在宿主机和容器之间建立端口映射
  • ARG :定义一个构建参数。在这里是jar包在target目录下的位置
  • ADD :将JAR文件添加到镜像中,并重命名为app.jar
  • ENTRYPOINT :设置容器启动时执行的命令

添加镜像以后,我这边是这个样子的。
当然正式环境下,还有很多镜像是需要拉取的,比如数据库相关mysql、redis等等镜像。
我这边只说一下简单的操作
在这里插入图片描述

然后再进行启动操作

docker run -d -p 8888:8080 --name my-springboot-container docker-demo:latest
  • -p 8888:8080:这表示将宿主机的8888端口映射到容器的8080端口。
    这个左边的端口是容器要启动的端口,这个右边的是你原生jar包启动的端口。
    比如原来你的工程配置文件里面配置的 为 server.port=8123,那这个右边的就要变成8123
  • –name my-springboot-container:这是你给容器指定的名称,可以根据需要更改。
  • docker-demo:latest:这是你要运行的镜像的名称和标签。确保这个镜像已经构建并且包含了你想要运行的JAR文件。

然后再进行验证 通过访问 http://localhost:8888(因为你启动容器使用的就是8888)来确认是否已经启动起来了。
你可以通过以下命令,查看 实时日志最后n行日志

docker logs -f 容器id或名称 --tail 1000

在这里插入图片描述
退出这个实时查看模式时,你可以简单地按下 Ctrl + C,即可

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词