Springboot项目打包成Docker镜像部署

本文详细介绍了如何将一个SpringBoot项目打包并部署到Docker。首先创建了一个SpringBoot项目并测试了Controller,然后打包应用。接着编写了Dockerfile,并使用IntelliJ IDEA的Docker插件进行语法高亮。Dockerfile中包含了将jar文件复制到容器和设置启动命令等内容。将Dockerfile和jar包上传到阿里云主机后,通过Docker构建镜像并成功启动容器,最终实现了通过Docker交付应用程序。

1. 创建一个springboot项目

并创建一个测试controller

在这里插入图片描述

启动测试,保证没问题:

在这里插入图片描述

2. 打包应用

在这里插入图片描述

在这里插入图片描述

3. 编写dockerfile

需要dockerfile文件语法提示高亮下个idea的docker插件:

在这里插入图片描述

下载地址:https://plugins.jetbrains.com/plugin/7724-docker/versions

在这里插入图片描述

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/app.jar"]

把文件上传到阿里云主机:(这里用的是宝塔面板)

在这里插入图片描述

4. 构建镜像

[root@LYX docker-test]# ls
demo-0.0.1-SNAPSHOT.jar  Dockerfile

[root@LYX docker-test]# docker build -t boot-docker666 .
Sending build context to Docker daemon  17.33MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete 
fce5728aad85: Pull complete 
76610ec20bf5: Pull complete 
60170fec2151: Pull complete 
e98f73de8f0d: Pull complete 
11f7af24ed9c: Pull complete 
49e2d6393f32: Pull complete 
bb9cdec9c7f3: Pull complete 
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar
 ---> 402911918c60
Step 3/5 : CMD ["--server.port=8080"]
 ---> Running in 384c8a45792c
Removing intermediate container 384c8a45792c
 ---> 8d0a1eba3ccf
Step 4/5 : EXPOSE 8080
 ---> Running in e27f4054bdc1
Removing intermediate container e27f4054bdc1
 ---> 146ff6934103
Step 5/5 : ENTRYPOINT ["java" , "-jar" , " / app.jar"]
 ---> Running in 15829f330e98
Removing intermediate container 15829f330e98
 ---> 180180063ec7
Successfully built 180180063ec7
Successfully tagged boot-docker666:latest

[root@LYX docker-test]# docker images
REPOSITORY       TAG       IMAGE ID       CREATED              SIZE
boot-docker666   latest    180180063ec7   About a minute ago   661MB
tomcat           latest    36ef696ea43d   12 days ago          667MB
java             8         d23bdf5b1b1b   4 years ago          643MB

5. 测试启动容器

在这里插入图片描述

成功!

使用docker,交付给别人的就是一个镜像即可!

### 将Spring Boot项目在Linux环境下打包Docker镜像 为了将Spring Boot应用程序容器化并创建Docker镜像,在Linux环境中操作涉及几个重要步骤。这不仅依赖于拥有一个功能完整的Spring Boot应用,还需要编写合适的`Dockerfile`来指导Docker如何构建该应用的镜像。 #### 准备工作环境 确保已经安装了最新版本的DockerDocker Compose[^2]。对于Spring Boot项目的开发人员来说,理解基础的Docker概念以及YAML配置语法也是必不可少的一部分[^1]。 #### 创建Dockerfile 在一个典型的Spring Boot项目根目录下创建名为`Dockerfile`的文件,其内容如下所示: ```dockerfile FROM openjdk:17-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 这段脚本指定了基于Alpine Linux发行版的OpenJDK 17作为基础映像,并复制编译后的`.jar`包到容器内的指定位置。最后定义启动命令用于运行Java程序。 #### 构建Docker镜像上述准备工作之后,可以通过执行下面这条命令来构建Docker镜像: ```bash docker build -t my-spring-boot-app . ``` 这里`my-spring-boot-app`代表自定义的目标镜像名称;`.`表示当前路径即为上下文(context),意味着Docker会在此处查找所需的资源(如之前提到过的`Dockerfile`)。 #### 测试新创建的镜像 一旦构建镜像,则可以尝试通过以下指令启动一个新的容器实例来进行测试: ```bash docker run --name some-springboot-container -p 8080:8080 -d my-spring-boot-app ``` 此命令将会以前台模式启动一个命名为`some-springboot-container`的新容器,并将其内部端口8080映射至主机上的相同端口号上,从而允许外部访问服务接口。 #### 使用Docker Compose简化部署流程 如果希望进一步优化多服务间的协作关系或者简化复杂场景下的部署过程,那么利用Docker Compose将是不错的选择之一。参照提供的样例`docker-compose.yml`文件结构,可以根据实际需求调整相应参数设置,实现更加灵活高效的自动化运维管理方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值