SpringBoot 项目生成docker镜像文件

本文详细介绍了如何创建Dockerfile,基于Java8镜像构建SpringBoot应用镜像,打包项目为jar,制作并查看Docker镜像,以及如何运行和访问应用。主要步骤包括编写Dockerfile,打包项目,使用dockerbuild制作镜像,dockerimages查看镜像,dockerrun启动容器并进行端口映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.创建 Dockerfile 文件,写入如下内容:

2.打包springboot项目为jar包

3.使用docker进行镜像的制作:

4. 通过docker images命令查看我们制作的镜像

5.运行镜像

6.访问网站验证


1.创建 Dockerfile 文件,写入如下内容:
FROM java:8

VOLUME /tmp

ADD febs_shiro_jwt-1.0.0-release.jar febs_shiro_jwt.jar

RUN bash -c 'touch /febs_shiro_jwt.jar'

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

参数说明:

  • FROM:表示已JDK8为基础镜像制作docker镜像
  • VOLUME:表示创建 /tmp 目录,并持久化到 Docker 数据文件夹。创建 /tmp 是因为SpringBoot内嵌的Tomcat容器默认使用 /tmp 作为工作目录
  • ADD:将容器外的 febs_shiro_jwt-1.0.0-release.jar 拷贝到容器中,并重命名为 febs_shiro_jwt.jar
  • RUN:RUN表示运行后面跟着的命令行命令,-c 表示将后面的内容作为一个字符串来统一执行,bash容器执行 -c 后面的命令,在 / 目录下创建一个 demo.jar 文件。需要注意的是,这里的 febs_shiro_jwt.jar 要和上一条ADD命令后面的 febs_shiro_jwt.jar 命名一致,表示将上一条命令添加到容器里的文件,创建在 / 目录下
  • ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加 java.security.egd 的系统属性指向 /dev/urandom 作为 ENTRYPOINT
2.打包springboot项目为jar包

打包好了jar包之后,假设为 febs_shiro_jwt-1.0.0-release.jar

febs_shiro_jwt-1.0.0-release.jar 和 Dockerfile 文件放到任意一个目录下,假设放到 /home/dockergz/myproject 目录下

3.使用docker进行镜像的制作:
docker build -t febs_shiro_jwt:latest(或者其他版本号,不加:latest默认为latest版本) 
/home/dockergz/myproject

参数说明:

  • build:表示制作镜像
  • -t:表示给镜像打个标签,相当于 docker tag 镜像ID 新镜像名:版本号
  • /home/dockergz/myproject:表示jar包和Dockerfile文件所在位置,如果是当前目录下,也可以用 . 表示

4. 通过docker images命令查看我们制作的镜像

5.运行镜像
docker run -itd --name febs_vue -p 8099:8099 -d febs_shiro_jwt

参数说明:

  • docker run:表示运行容器
  • –name:表示给容器起个别名叫febs_vue ,操作容器的时候可以使用别名来代替容器ID,方便容器的管理
  • -p:端口映射。将容器内部的8099端口映射到宿主机的80899端口。最后 febs_shiro_jwt 是要启动的镜像
  • -d:表示容器开启后台运行
6.访问网站验证

直接浏览器访问:

http://47.112.153.193:8099/login?username=leon&password=1234qwer

参考链接:

springboot项目制作docker镜像_青春有幸的博客-优快云博客

### 创建 Spring Boot 应用程序的 Docker 镜像 为了使 Spring Boot 应用程序能够更便捷地部署并提升其可移植性和可扩展性,可以通过 Docker 容器化技术来实现这一目标。以下是为 Spring Boot 应用程序构建 Docker 镜像的具体方法。 #### 使用 Maven 插件进行分层构建 通过 `spring-boot-maven-plugin` 插件支持的分层构建功能,可以有效减少最终生成Docker 镜像大小,从而加快传输速度和启动时间。这种方式相较于传统的仅使用 Dockerfile 的做法更加高效[^2]。 ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <image> <name>${docker.image.prefix}/${project.artifactId}:${project.version}</name> <publish>true</publish> </image> </configuration> </plugin> </plugins> </build> ``` 此配置允许开发者利用 Maven 生命周期中的特定阶段自动完成镜像的构建工作,并且可以根据实际需求调整镜像名称和其他属性设置。 #### 编写 Dockerfile 文件 对于那些希望手动控制整个流程或者不具备上述插件条件的情况,则需编写一个简单的 Dockerfile 来描述如何组装所需的环境以及运行应用程序: ```Dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp EXPOSE 8080 ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 这段脚本指定了基础镜像、挂载卷路径、暴露端口等基本信息;并通过复制编译好的 jar 包至容器内部指定位置,最后设置了启动命令以便于容器初始化完成后立即执行业务逻辑[^5]。 #### 利用 docker-compose 工具简化操作 如果项目结构较为复杂或存在多个微服务组件相互协作的需求时,还可以借助 `docker-compose.yml` 文件进一步简化多容器应用集群管理任务。该文件定义了一系列服务之间的关系及其各自的资源配置情况,使得一键式搭建测试环境成为可能[^4]。 ```yaml version: '3' services: springboot-app: build: . ports: - "8080:8080" environment: SPRING_PROFILES_ACTIVE: dev ``` 以上就是关于如何为 Spring Boot 应用程序创建 Docker 镜像的相关介绍和技术细节说明。值得注意的是,在实践过程中还需要考虑诸如安全加固措施等方面的内容以确保生产环境下稳定可靠的服务提供能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值