在Docker上部署SpringBoot项目
在学习中发现了部署的时候总是有各种问题,此文章只有操作步骤没有原理解释,只是用来提醒自己部署步骤
部署总共可以分为五步!
第一步:将SpringBoot项目打包成jar包
这里使用idea的上maven选项打包,点一下就行。
第二步:编写Dockerfile文件
新建一个名为Dockerfile的文件,注意没有后缀名
# 镜像java版本,这里有坑,你可以看着项目里的pom.xml文件确定自己的版本,如果有问题的话多尝试几个
FROM openjdk:17
# VOLUME 指定了临时文件(使用容器卷)目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp。
VOLUME /tmp
# 将jar包添加到容器中并更名为test2.jar
ADD test1-0.0.1-SNAPSHOT.jar test2.jar
# 暴露端口号
EXPOSE 8080
# 容器启动时会运行的命令
ENTRYPOINT ["java","-jar","/test2.jar"]
这里我的jar包名是test1-0.0.1-SNAPSHOT.jar,然后test2.jar是新起的名字(可以随意起,但是最后一行最后"/test2.jar"要对应你起的新名字)。
其他的配置很明确,对照的改就行了
第三步:将SpringBoot的jar包和Dockerfile文件一起放在linux系统下任意一个目录下
这里我使用的是Xftp,当然你用什么方式都行,都在一个文件夹底下就行
第四步:在这个文件夹目录下执行以下命令,将生成镜像
docker build . -t test2
注意test2是我前面起的名字,这里要填你自己名的名字,还有要记得中间有一个 . 点
第五步:在确认已成功安装SpringBoot项目的Docker镜像后运行一下命令即可创建此SpringBoot项目的容器实例
下面命令查看docker本地中所拥有的镜像
docker images
上图结果有test2,安装成功,此时下面命令创建此镜像的容器实例
docker run -d --name test8080 -p 8080:8080 test2
其中test8080是我给容器起的名字,test2是镜像名字,以及-p后面的数字是端口号,注意
第六步:如果上述步骤全部没问题,那么应该已经可以正常访问了,如果有问题就不是你部署没部署上的问题,而可能是你springboot项目本身的问题,此时就可以输入docker的日志命令查看springboot项目的报错信息,再进行更改
下面是查看容器日志的命令
docker logs test8080