SpringBoot微服务项目打包成Docker镜像详解
SpringBoot微服务打包Docker镜像分为如下几步:
-
构建springboot项目 打包应用 编写dockerfile 构建镜像 发布运行
一、构建SpringBoot项目
1、第一步创建一个springboot微服务项目 2、自定义名称 3、选择需要的Spring Web,然后next 4.编写一个Controller测试类 5、启动springboot项目 6、访问
二、打包应用
1、将项目打包 2、测试是否打包成功 3、将项目拿出来到window机器上测试
下载执行demo 测试成功!!! 则表示服务没有问题
三、在idea中编写dockerfile
1、在idea先下载dockerfile插件 apply下载插件,重启idea 2.此创建dockerfile它会高量
#基础镜像通过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来创建的目录中 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之后,给别交付一个镜像即可!
