Spring Boot项目打包Docker Spring Boot打包Docker镜像 一时失言乱红尘 2022-09-10 04:29 201阅读 0赞 ## Spring Boot项目打包Docker Spring Boot打包Docker镜像 ## **一、准备工作** 1、Linux CentOS 系统,**已安装好Docker 服务**,[不会点这里][Link 1]。 2、Linux CentOS 系统的Docker服务中,已经安装 **JDK 镜像**,[不会点这里][Link 2]。 3、Linux CentOS 系统中,已经安装好 Maven 服务。 **二、开始** 1、使用Spring Boot Starter 创建一个普通maven web项目,过程略。([参考这里][Link 3]) 2、pom.xml 添加 **dockerfile-maven-plugin** 插件 <!-- SpringBoot打包Docker插件 --> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.4.10</version> <executions> <execution> <id>default</id> <goals> <goal>build</goal> <goal>push</goal> </goals> </execution> </executions> <configuration> <repository>${project.artifactId}</repository> <tag>${project.version}</tag> <buildArgs> <JAR_FILE>${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> 3、项目路径下,创建 **Dockerfile** 文件 ,添加如下配置: FROM openjdk:latest LABEL docker_study="boot" EXPOSE 8080 ARG JAR_FILE ADD target/${JAR_FILE} /spring-boot-tourist.jar ENTRYPOINT ["java","-jar","/spring-boot-tourist.jar"] ![watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASGFIYV9TaXI_size_19_color_FFFFFF_t_70_g_se_x_16][] 4、 项目移动到,装有Docker服务的 Linux CentOS系统中: 5、执行**mvn clean package -DskipTests** 进行打包镜像 ![watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASGFIYV9TaXI_size_20_color_FFFFFF_t_70_g_se_x_16][] 6、 **docker images** , 查看镜像 ![2021090422160813.png][] 7、 **docker run -d -it --name springboot-8080 -p 8080:8080 spring-boot-tourist:0.0.1-SNAPSHOT** ,运行镜像 docker run -d -it --name springboot-8080 -p 8080:8080 spring-boot-tourist:0.0.1-SNAPSHOT --name springboot-8080:容器名,自定义 -p 8080:8080:端口进行映射,将本地 8080 端口映射到容器内部的 8080 端口 spring-boot-tourist:0.0.1-SNAPSHOT : 镜像名称:标签名 ; docker images 查看 8、浏览器访问: **http://192.168.213.129:8080** ,可正常访问,则打包成功 **三、总结** 1、Spring Boot项目,打包Docker镜像,需要做以下准备: * CentOS中安装Docker服务 * Docker服务中,安装JDK镜像 * CentOS中安装 maven服务 2、pom.xml 添加 **dockerfile-maven-plugin** 插件 3、项目路径下,创建 **Dockerfile** 文件 4、了解更多: * 关于 [dockerfile-maven-plugin][] 插件 * [Dockerfile][] 文件 ![watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASGFIYV9TaXI_size_20_color_FFFFFF_t_70_g_se_x_16 1][] 5、遗留问题:若使用[自己创建的JDK镜像][JDK],进行打包,报错,无法成功创建镜像。 6、补充 docker 项目命令: * 移除镜像: **docker rmi 镜像id / 镜像名:\[tag\]** * 查看已运行的容器实例: **docker ps** * 查看启动过的容器实例: **docker ps -a** * 关闭容器实例:**docker stop 容器id / 容器名** * 启动容器实例: **docker start 容器id / 容器名** * 移除容器:**docker rm 容器id / 容器名** 参考资料:[https://github.com/spotify/dockerfile-maven][dockerfile-maven-plugin] [Link 1]: https://thinkcode.blog.csdn.net/article/details/118486934 [Link 2]: https://thinkcode.blog.csdn.net/article/details/118660383 [Link 3]: https://thinkcode.blog.csdn.net/article/details/89679757 [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASGFIYV9TaXI_size_19_color_FFFFFF_t_70_g_se_x_16]: /images/20220829/4282c782edfc4846abf6a5a7bf3cc211.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASGFIYV9TaXI_size_20_color_FFFFFF_t_70_g_se_x_16]: /images/20220829/cd3c02b808554372899c2010661ff766.png [2021090422160813.png]: /images/20220829/85dcd42ebef14ac0bd3d756d2a1aa5d5.png [dockerfile-maven-plugin]: https://github.com/spotify/dockerfile-maven [Dockerfile]: https://www.runoob.com/docker/docker-dockerfile.html [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASGFIYV9TaXI_size_20_color_FFFFFF_t_70_g_se_x_16 1]: /images/20220829/afd05bd6c8244931b0a60a05e3808edc.png [JDK]: https://thinkcode.blog.csdn.net/article/details/118660686
还没有评论,来说两句吧...