栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

12-Docker部署SpringBoot项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

12-Docker部署SpringBoot项目

1. 准备工作

之前做的一个SpringBoot项目,在本地电脑上,将其打包成jar包后,仅需启动Redis服务端,该项目就可正常运行起来。

下面,利用Docker将它部署起来,并运行,看看效果。

需要做的工作:

  • 下载Redis3.2.10版本的镜像
  • 自制SpringBoot项目镜像
2. Redis3.2.10版本的镜像

(1)指令详情

# 1、拉取redis3.2.10镜像
docker pull redis:3.2.10

# 2、创建redis的挂载目录
mkdir /usr/local/redis/conf
mkdir /usr/local/redis/data

# 3、在/usr/local/redis/conf下新建配置文件redis.conf
vim redis.conf

# redis.conf文件内容参考以下地址
https://blog.csdn.net/qq_20156289/article/details/109465873

# 4、运行redis镜像,启动容器,端口设置为6379
docker run -d -p 6379:6379 -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/etc/redis/data --name redis-for-springboot redis:3.2.10 redis-server /etc/redis/redis.conf --appendonly yes

(2)执行过程

3. 自制SpringBoot项目镜像

(1)步 骤

# 1、新建一个目录存放jar包及Dockerfile文件
mkdir /usr/local/springboot

# 2、将jar包上传到上面的目录中
使用xftp将打包好的jar包上传至/usr/local/springboot

# 3、编写Dockerfile文件
vim Dockerfile

# 文件内容
# base jdk11
# base jdk11
FROM openjdk:11
MAINTAINER yuhuofei2021<*****@qq.com>

VOLUME /tmp
ADD spring-boot-weather-0.0.1-SNAPSHOT.jar /usr/local/springboot/app.jar
ENTRYPOINT ["nohup","java","-jar","/usr/local/springboot/app.jar","&"]
EXPOSE 8080

# 4、docker build创建镜像
docker build -t spring-boot-weather .

(2)构建过程及结果



(3)运行spring-boot-weather镜像,启动容器

# 运行指令
docker run -d -p 8088:8080 --name weather-report spring-boot-weather

4. 测试项目

(1)访问测试

在浏览器中访问地址:http://192.168.125.128:8088/report/cityId/101280601,结果页面报错


(2)排查问题

报的是500,说明能访问到SpringBoot项目所在的容器,但是处理出错了。猜测原因可能是,因为Redis部署在一个容器,而SpringBoot项目部署在另外一个容器,SpringBoot项目无法访问到Redis导致。

我们ping一下两个容器之间的连通性。

# 进入到SpringBoot容器中,ping一下Redis的ip
ping 172.17.0.2

# 进入到Redis容器中,ping一下SpirngBoot项目的ip
ping 172.17.0.3


可以看到,两个容器之间的连通性是没有问题的,都处在同一个网段,都能互相连通,说明前面的猜测不成立。

接下来查看一下日志,看看具体报错详情。

# 查看日志指令
docker logs -f -t 1a4a7fda0da1


日志的结果表明,SpringBoot项目访问的Redis地址是localhost:6379,而在Redis容器的/etc/hosts文件中,localhost绑定的ip的是127.0.0.1,所以自然无法访问成功。

(3)问题整改

我们把SpringBoot项目中关于Redis的ip配置从localhost改为当前Redis容器所在ip:172.17.0.2,重新打包SpringBoot镜像,再运行,下面是效果图

Docker部署SpringBoot项目整个流程,大体就是上面这样!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322596.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号