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

本文主要介绍如何使用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.本次分享到此结束。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值