SpringBoot微服务项目打包成Docker镜像详解

SpringBoot微服务打包Docker镜像分为如下几步:

  • 构建springboot项目
  • 打包应用
  • 编写dockerfile
  • 构建镜像
  • 发布运行

一、构建SpringBoot项目

1、第一步创建一个springboot微服务项目
SpringBoot微服务项目打包成Docker镜像详解_第1张图片
2、自定义名称
SpringBoot微服务项目打包成Docker镜像详解_第2张图片
3、选择需要的Spring Web,然后next
SpringBoot微服务项目打包成Docker镜像详解_第3张图片
4.编写一个Controller测试类
SpringBoot微服务项目打包成Docker镜像详解_第4张图片
5、启动springboot项目
SpringBoot微服务项目打包成Docker镜像详解_第5张图片
6、访问
SpringBoot微服务项目打包成Docker镜像详解_第6张图片

二、打包应用

1、将项目打包
SpringBoot微服务项目打包成Docker镜像详解_第7张图片
2、测试是否打包成功
SpringBoot微服务项目打包成Docker镜像详解_第8张图片
3、将项目拿出来到window机器上测试
SpringBoot微服务项目打包成Docker镜像详解_第9张图片

下载执行demo
SpringBoot微服务项目打包成Docker镜像详解_第10张图片
测试成功!!! 则表示服务没有问题

三、在idea中编写dockerfile

1、在idea先下载dockerfile插件
SpringBoot微服务项目打包成Docker镜像详解_第11张图片
apply下载插件,重启idea
SpringBoot微服务项目打包成Docker镜像详解_第12张图片
2.此创建dockerfile它会高量
SpringBoot微服务项目打包成Docker镜像详解_第13张图片

#基础镜像通过java8来的
FROM java:8
#将当前文件中所有*.jar  拷贝到项目的app.jar中(这个app.jar是自己生成的)
COPY *.jar /app.jar
#映射地址
CMD ["--server.prot=8080"]
#暴露端口
EXPOSE 8080
#执行命令java  -jar
ENTRYPOINT ["java","-jar","/app.jar"]

四、在linux中构建镜像

1、先创建一个用来build的目录

[root@slaves2 ~]# cd /home/
[root@slaves2 home]# mkdir idea
[root@slaves2 home]# cd idea/

2、上传Dockerfile和jar来创建的目录中
SpringBoot微服务项目打包成Docker镜像详解_第14张图片
3、构建镜像

[root@slaves2 idea]# docker build -t idea_kuangren .
Sending build context to Docker daemon  17.04MB
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
 ---> 8853aaaa23de
Step 3/5 : CMD ["--server.prot=8080"]
 ---> Running in e6a28bebdf4c
Removing intermediate container e6a28bebdf4c
 ---> bb696e4afb42
Step 4/5 : EXPOSE 8080
 ---> Running in a44bd92fec03
Removing intermediate container a44bd92fec03
 ---> 77d13935afba
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in e9d82c5d12d4
Removing intermediate container e9d82c5d12d4
 ---> dadde93171d4
Successfully built dadde93171d4
Successfully tagged idea_kuangren:latest
[root@slaves2 idea]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
idea_kuangren   latest    dadde93171d4   2 minutes ago   660MB

五、发布运行

1、启动镜像生成容器

[root@slaves2 idea]# docker run -d -P --name kuangren-springboot-web idea_kuangren
659f1335dc902c9f91e77f0990471ab3804c82a6cd57009b1f246b6155980c6f

2、测试访问

[root@slaves2 idea]# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                     NAMES
659f1335dc90   idea_kuangren   "java -jar /app.jar …"   41 seconds ago   Up 40 seconds   0.0.0.0:49155->8080/tcp   kuangren-springboot-web
[root@slaves2 idea]# curl localhost:49155
{"timestamp":"2021-01-20T02:19:01.732+00:00","status":404,"error":"Not Found","message":"","path":"/"}
[root@slaves2 idea]# curl localhost:49155/hello
大数据狂神你好啊

以后使用docker之后,给别交付一个镜像即可!

你可能感兴趣的:(linux,springboot,docker)