使用Maven插件将SpringBoot应用打包为Docker镜像

    技术2023-12-21  71

    本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像。

    1.先查看一下自己的docker版本,避免因为docker版本过低出现问题

    [root@localhost /]# docker -v Docker version 19.03.12, build 48a66213fe [root@localhost /]#

    2.拉取registry镜像,版本建议2以上

    [root@localhost /]# docker pull registry:2.7.1 2.7.1: Pulling from library/registry cbdbe7a5bc2a: Pull complete 47112e65547d: Pull complete 46bcb632e506: Pull complete c1cc712bcecd: Pull complete 3db6272dcbfa: Pull complete Digest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551d Status: Downloaded newer image for registry:2.7.1 docker.io/library/registry:2.7.1

    3.用vim编辑器修改docker.service文件

    vim /usr/lib/systemd/system/docker.service 将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 改为 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

    4.让Docker支持http上传镜像

    echo '{ "insecure-registries":["192.168.2.171:5000"] }' > /etc/docker/daemon.json

    5.修改后使配置生效

    systemctl daemon-reload

    6.重启docker

    systemctl stop docker systemctl start docker

    7.开启防火墙 构建端口

    firewall-cmd --zone=public --add-port=2375/tcp --permanent firewall-cmd --reload

    8.在你的springboot项目中的pom文件加入maven打包到服务器的插件

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.1.0</version> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <imageName>${project.artifactId}:${project.version}</imageName> <--这里要写你自己的服务器ip不然生成的镜像不会上传--> <dockerHost>http://192.168.2.171:2375</dockerHost> <baseImage>java:8</baseImage> <entryPoint>["java", "-jar", "-Dspring.profiles.active=dev","/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins>

    9.创建Dockerfile文件,文件和src目录平级。

    FROM hub.c.163.com/library/java:latest VOLUME /tmp #基础镜像:仓库是java,tag是8 #FROM java:8 #将打包好的spring程序拷贝到容器中的指定位置 app.jar相当于起一个别名 ADD ${project.artifactId}:${project.version} app.jar #容器启动后需要执行的命令 ENTRYPOINT ["java", "-jar","/app.jar"]

    10.配置完成后点开maven栏 先点击clean清楚一下之前的包,在点package就自动打成docker镜像了。 11.在服务器里用dockers images就可以找到你的项目镜像了。启动和平常的镜像一样,注意你docker项目的端口和宿主机端口的映射。2019版的idea自带docker插件,可以直接连接你的服务器。找到你的镜像运行就可以了。 12.本次分享到此结束。。。。。。。。。

    Processed: 0.013, SQL: 9