本文主要讲述的是在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,新手上路,多多指教。