SpringBoot3.x打包Docker容器的实现_代码知识_七洗推广网

SpringBoot3.x打包Docker容器的实现

#代码知识 发布时间: 2026-01-12
目录
  • Docker化Spring Boot应用
    • 创建文件夹 demo
    • 创建Dockerfile
  • 在demo夹下面放入demo.jar
    • 执行镜像构建命令
      • 查看本地镜像
        • 运行容器
          • 浏览器访问

            Docker化Spring Boot应用

            创建文件夹 demo

            mkdir demo
            cd demo

            创建Dockerfile

            # 两个 openjdk 二选一
            #FROM openjdk:17-jre-alpine
            
            FROM eclipse-temurin:17
            
            MAINTAINER chengxuyuanshitang  <chengxuyuanshitang@XX.com>
            
            RUN mkdir -p  /workspace/java/demo
            
            COPY demo.jar  /workspace/java/demo/demo.jar
            
            ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", " /workspace/java/demo/demo.jar"]
            
            CMD ["--spring.profiles.active=test"]
            
            EXPOSE 8122
            
            • FROM:指定基础镜像,项目是使用jdk17开发的项目,所以我们指定的基础镜像为openjdk:17-jdk-alpine
            • MAINTAINER:项目维护人员
            • RUN:执行命令,在根目录下创建/workspace/java/demo目录
            • COPY:将宿主机当前目录下的demo.jar文件拷贝到app目录下,并重命名为demo.jar
            • ENTRYPOINT:指定容器启动程序及参数
            • CMD: 提供的参数将会被附加到 ENTRYPOINT 命令之后,作为额外的参数传递给 java 命令。如果没有 CMD 指令,或者在运行容器时没有提供任何参数,那么只有 ENTRYPOINT 定义的命令会被执行。
            • EXPOSE:指定运行时容器提供服务的端口
            • -Djava.security.egd=file:/dev/./urandom  : 这是一个系统属性设置,-D 表示设置一个系统属性。java.security.egd 是用于指定随机数生成器的系统属性。file:/dev/./urandom 指定了使用 /dev/urandom 作为随机数生成器的源,这通常用于提高性能,因为 /dev/urandom 在生成随机数时不会阻塞。

            在demo夹下面放入demo.jar

            demo.jar和Dockerfile在一个目录下面

            执行镜像构建命令

            docker build -t demo:v1 .

            查看本地镜像

            docker images

            运行容器

            docker run -p 8899:8122 demo:v1

            浏览器访问

            IP:8899/doc.html#/home

            到此这篇关于SpringBoot3.x打包Docker容器的实现的文章就介绍到这了,更多相关SpringBoot3.x打包Docker内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! 

            代码知识SEO

            上一篇 : Python3读写ini配置文件的示例

            下一篇 : Nuxt.js nuxt-link与router-link的区别说明
            品牌营销
            专业SEO优化
            添加左侧专家微信
            获取产品详细报价方案