千家信息网

如何分析Spring Boot应用通过Docker发布部署的流程

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇内容主要讲解"如何分析Spring Boot应用通过Docker发布部署的流程",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何分析Spring Bo
千家信息网最后更新 2025年11月16日如何分析Spring Boot应用通过Docker发布部署的流程

本篇内容主要讲解"如何分析Spring Boot应用通过Docker发布部署的流程",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何分析Spring Boot应用通过Docker发布部署的流程"吧!

目录
  • 手动部署

    • 1、idea创建spring boot项目

    • 2、项目打成 Jar 包

    • 3、构建 docker image

    • 4、查看并运行镜像

  • 插件部署

    • 运行推送命令

      将Spring Boot项目部署到docker中有两种方法,手动部署和插件部署

      手动部署

      1、idea创建spring boot项目

      pom.xml文件

                  spring-cloud-examples        org.example        1.0-SNAPSHOT        4.0.0    DockerDemo                        org.springframework.boot            spring-boot-starter-web                                                    org.springframework.boot                spring-boot-maven-plugin                        

      必须添加 spring-boot-maven-plugin 插件,该插件的作用是在打 Jar 包时引入依赖包,当运行"mvn package"进行打包时,会打包成一个可以直接运行的 JAR 文件,使用 "java -jar" 命令就可以直接运行。

      启动类

      package dockerdemo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }    @RequestMapping("/hello")    public String hello(){        return "Hello Docker World!";    }}

      2、项目打成 Jar 包

      然后在项目pom.xml文件所在目录执行maven命令将项目打成 Jar 包

      $ mvn package

      从输出日志可知 Jar 在 target 目录下,直接运行 Jar 包

      $ java -jar DockerDemo-1.0-SNAPSHOT.jar

      然后在浏览器中输入 http://localhost:8080/hello 进行测试

      3、构建 docker image

      创建Dockerfile文件

      FROM java:8VOLUME /tmpADD DockerDemo-1.0-SNAPSHOT.jar DockerDemo.jarRUN bash -c "touch /DockerDemo.jar"ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/DockerDemo.jar"]

      参数解释:

      • FROM:表示以JDK8为基础镜像制作docker镜像

      • VOLUME:表示创建一个挂载点,容器目录为 /tmp,主机目录自动生成。创建 /tmp 是因为Spring Boot内嵌的Tomcat容器默认使用 /tmp 作为工作目录

      • ADD:将容器外的 DockerDemo-1.0-SNAPSHOT.jar 拷贝到容器中,并重命名为 DockerDemo.jar

      • RUN:RUN 后面跟着bash命令,-c 表示将后面的字符串当命令执行,即执行 touch /DockerDemo.jar,该命令修改 DockerDemo.jar 文件的访问时间和修改时间为当前时间

      • ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短Tomcat的启动时间,添加 java.security.egd 的系统属性指向 /dev/urandom 作为 ENTRYPOINT

      创建好 Dockerfile 后,把打包好的 Spring Boot 项目 jar 包和 Dockerfile 文件放在任意一个目录下,使用 docker 命令构建镜像文件:

      $ docker image build -t DockerDemo:1 .

      参数解释:

      • build:表示制作镜像

      • -t:表示给镜像打个标签,相当于 docker tag 镜像ID 新镜像名:版本号

      • .:表示Dockerfile文件所在位置,. 表示在当前目录

      4、查看并运行镜像

      #查看镜像:$ docker images#运行镜像:$ docker container run --name DockerDemo -d -p 80:8080 DockerDemo:1

      参数解释:

      • docker container run:表示运行容器

      • -name:给容器起个别名,操作容器的时候可以使用别名来代替容器ID,方便容器的管理

      • -d:表示容器开启后在后台运行

      • -p:端口映射。将容器内部的8080端口映射到宿主机的80端口

      插件部署

      插件部署要在项目的 pom.xml 文件中添加 dockerfile-maven-plugin 插件

      pom.xml

                  spring-cloud-docker        org.example        1.0-SNAPSHOT        4.0.0    spring-cloud-eureka            1.8        1.8        UTF-8        UTF-8                            registry.cn-huhehaote.aliyuncs.com/monkeybrain                        latest                                            org.springframework.cloud            spring-cloud-starter-eureka-server                                                        install        ${project.artifactId}                                    src/main/resources                true                                                                    org.springframework.boot                spring-boot-maven-plugin                                    true                                                                    org.apache.maven.plugins                maven-surefire-plugin                                    true                                                                    com.spotify                docker-maven-plugin                0.4.13                                                                        http://localhost:2375                    ${docker.image.prefix}/${project.build.finalName}                    aliyun-docker-registry                    registry.cn-huhehaote.aliyuncs.com                    true                                                                latest                                                            java:8                                                                ["java","-jar","/${project.build.finalName}.jar"]                                                                                            /                            ${project.build.directory}                            ${project.build.finalName}.jar                                                                                                                                                

      运行推送命令

      $ mvn clean package docker:build -DpushImage

      到此,相信大家对"如何分析Spring Boot应用通过Docker发布部署的流程"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

      容器 运行 镜像 命令 文件 项目 目录 插件 时间 流程 分析 应用 参数 手动 端口 解释 内容 所在 方法 UTF-8 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发待遇大概多少 包头软件开发简介 学生宣传禁毒网络安全教育 信息网络安全监察所学课程 linux服务器配置yum地址 上海综合软件开发价格对比 新乡市九义网络技术有限公司 软件开发哪个机构比较靠谱 数据库应用技术 教案 河北一对一网络技术服务原则 互联网科技创业计划书 对日软件开发常用日语单词 拒绝用户访问数据库信息架构 上海三年软件开发工资多少 获取当前数据库名 原神私人服务器开启方式 通信软件开发业务流程 网络安全内容 怎么写 王者游戏中的服务器升级 如将预测数据库 济南君子网络技术有限公司简介 梁艺云 为想互联网科技 系统网络安全怎么关闭 上海综合软件开发价格对比 太行村镇银行 网络安全 安徽多功能网络技术咨询项目 网络安全教育及电信诈骗 东城区网络安全管理会议 中国电脑服务器是干什么的 互联网金融软件开发是什么
      0