docker打包部署springboot项目

本文主要讲述的是在centos7环境下,运行springboot项目。首先编写了一个springboot项目,我这里写了一个连接数据库的小demo。项目完成之后,打成jar包,利用xshell上传到centos里,我这里直接上传到根目录下,然后编写dockerfile,利用dockerfile来构建docker镜像,最后运行镜像。具体实施步骤如下:
1.编写一个springboot项目
可以根据喜好编写一个简单的springboot项目,我这边主要测试数据库的连接,所以编写了一个与数据库交互的小项目,项目地址:https://gitee.com/Marinc/springmybatiseasydemo1.git,可以下载并参考。我的项目中配置的数据库信息如下:
在这里插入图片描述
注意:这里的数据库url需要填写你在cento部署的mysql镜像的路径与数据库名称。
2.在centos中利用docker配置并运行mysql数据库
(1)首先利用docker拉取对应的mysql镜像

docker pull mysql:5.7

后面的5.7是对应的版本,可以根据需要自行选择,也可以不选。
(2)查看镜像是否拉取成功
利用上述质量拉取镜像之后,可利用下述指令查看是否拉取成功:

docker pull mysql

若出现类似下述结果,则表明拉取成功。
在这里插入图片描述
(3)运行mysql镜像

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -di --restart=always mysql:5.7

docker run -p 主机端口:容器端口 --name 自定义容器名 -i -t -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG

(4)运行后,可以进入对应mysql镜像查看ip地址,以便在mysql中进行配置

docker exec -it mysql bash
cat /etc/hosts

3.在外部利用sqlyog或Navicat连接数据库,进行数据导入

4.利用idea打包springboot项目
具体操作按下述步骤1-2-3执行。步骤3是查看打包后的项目。
在这里插入图片描述
5.上传jar包
在xshell中安装一个插件,或直接利用ftp上传jar包导centos中的指定位置。这里我直接上传到根目录下。
(1)首先安装lrzsz工具包

yum  install lrzsz

(2)运行命令rz(上传文件到Linux上),xshell会弹出文件对话框,选择好文件后关闭对话框即可。

6.构建dockerfile文件

FROM openjdk:8
ADD springmybatiseasy-0.0.1-SNAPSHOT.jar app.jar
ENV MYSQL_ALLOW_EMPTY_PASSWORD yes
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

第一步:FROM openjdk:8 为指定基础镜像;
第二步:第一个 springmybatiseasy-0.0.1-SNAPSHOT.jar 为打包好后的springboot项目jar名称,app.jar为自定义的名称,将springmybatiseasy-0.0.1-SNAPSHOT.jar复制到 app.jar下面;
第三步:容器需要暴露 给主机的端口号,这里的端口号和项目配置文件中的端口号一致,暴露的端口号为8080,;
第三步: 在镜像运行为容器后执行的命令 此次会被翻译为 java -jar /app.jar

7.执行dockerfile文件

docker build -f Dockerfile -t app:1 .
# -f 指定编译的文件
# -t 指定镜像名以及版本号
# 命令最后还有一个 . 表示Dockerfile文件在当前文件下

8.运行项目

docker run --name=myapp -p 8080:8080 -di app:1
-p 为端口号映射  左边8080 为外部访问端口,右边8080为容器对宿主机的映射端口
# -d后台运行容器
# -i以交互模式运行容器
# --name自定义容器名称
# 最后 myapp 为我们上一步自定义构建的镜像名称

9.查看是否运行成功
输入指令:

curl localhost:8080

若出现以下结果,则表明运行成功。
在这里插入图片描述
10.在浏览器中访问项目

输入:域名+端口号
例如:192.168.122:8080

11.后记
由于springboot中数据库的配置方式不一样,则运行项目的方式也不一样。具体可参考博客:https://blog.csdn.net/caox_nazi/article/details/78366584,新手上路,多多指教。

猜你喜欢

转载自blog.csdn.net/qq_33479841/article/details/106026644