首页 > 文章列表 > SpringBoot打包docker镜像发布的方法

SpringBoot打包docker镜像发布的方法

springboot docker
489 2023-05-11

SpringBoot打包docker镜像发布的方法

1:首先构建一个SpringBoot项目

只需要添加web依赖

2:编写一个controller用于测试

3:本机启动观察是否能够成功访问

4:打包

5:找到生成的jar包位置

6:jar包的启动运行测试

7:编写Dockerfile文件

8:把我们的jar包和Dockerfile文件上传服务器

9:利用上传的文件构建镜像

[root@iZwz9hv1phm24s3jicy8x1Z idea]# ls

Dockerfile  Docker-Package-0.0.1-SNAPSHOT.jar

[root@iZwz9hv1phm24s3jicy8x1Z idea]# docker build -t dongmu-springboot-project .

Sending build context to Docker daemon  17.54MB

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

 ---> a16d648390df

Step 3/5 : CMD ["--server.port=8080"]

 ---> Running in bc45f72484c7

Removing intermediate container bc45f72484c7

 ---> 713861b331ad

Step 4/5 : EXPOSE 8080

 ---> Running in 7a28e4939b5e

Removing intermediate container 7a28e4939b5e

 ---> 08f540832166

Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]

 ---> Running in 6cd669cd522c

Removing intermediate container 6cd669cd522c

 ---> 1fd9f50df534

Successfully built 1fd9f50df534

Successfully tagged dongmu-springboot-project:latest

10:利用镜像运行容器

[root@iZwz9hv1phm24s3jicy8x1Z idea]# docker images

REPOSITORY                  TAG                IMAGE ID       CREATED              SIZE

dongmu-springboot-project   latest             1fd9f50df534   About a minute ago   661MB

redis                       5.0.9-alpine3.11   3661c84ee9d0   24 months ago        29.8MB

tomcat                      9.0.22             c856951ade0a   2 years ago          624MB

java                        8                  d23bdf5b1b1b   5 years ago          643MB

[root@iZwz9hv1phm24s3jicy8x1Z idea]# docker run -d -P --name dongmu-springboot-web dongmu-springboot-project

c63282034de4e9dca727c93009e29f421bcd2544557a60b6339fa8056cc1d0d5

11:测试访问

[root@iZwz9hv1phm24s3jicy8x1Z idea]# docker ps

CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                         NAMES

c63282034de4   dongmu-springboot-project   "java -jar /app.jar …"   34 seconds ago   Up 33 seconds   0.0.0.0:49166->8080/tcp, :::49166->8080/tcp   dongmu-springboot-web

[root@iZwz9hv1phm24s3jicy8x1Z idea]# curl localhost 49166

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8" />

        <title>Apache Tomcat/9.0.50</title>

        <link href="favicon.ico" rel="icon" type="image/x-icon" />

        <link href="tomcat.css" rel="stylesheet" type="text/css" />

    </head>

......

访问成功

上面是内部访问,下面我们重新启动利用外网进行访问

[root@iZwz9hv1phm24s3jicy8x1Z idea]# docker run -d -p 3344:8080 --name dongmu-springboot-web dongmu-springboot-project

35f3b4fe0f9a4b878d6566a9f4334fc98e7841b1fc5eb7869dd0044d4fb44d6d