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

Docker部署Spring boot + Redis +Mysql

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

Docker部署Spring boot + Redis +Mysql

创建一个桥接模式的网络

# 创建一个桥接模式的网络,并制定子网范围以及网关ip
docker network create --driver bridge --subnet 172.20.21.0/24 --gateway 172.20.21.1 school-exam

安装redis

#运行redis,并把G:docker-config-filesSchoolExamredis.conf目录下的文件挂载到/etc/redis.conf
#执行使用的网段以及ip
​
docker run -itd --name school-redis -v G:docker-config-filesSchoolExamredis.conf:/etc/redis.conf --net school-exam -p 6480:6379 --ip 172.20.21.2 redis:3.2.10 /etc/redis.conf
​
# 如果需要其它docker容器连接redis,则需要修改redis.conf
​
1.把 bind 127.0.0.1 -> bind 172.20.21.2   #172.20.21.2为redis容器的ip地址
2.启用 requirepass foobared   #可改也可不改
3.把 protected-mode yes -> protected-mode no   #关闭安全模式
​

安装mysql

#运行mysql,需要指定MYSQL_ROOT_PASSWORD,不然docker无法正常启动
​
docker run -itd --name school-mysql -e  MYSQL_ROOT_PASSWORD=root --net school-exam -p 6481:3306 --ip 172.20.21.3 mysql:5.7
​
# mysql这个地方有个坑,我用的是5.7版本,这个版本默认设置了ONLY_FULL_GROUP_BY,因为项目上有些group by
# 语句没有写全分组的字段,所以会报错。需要改一下my.cnf文件
​
# 把school-mysql容器上的my.cnf文件复制到本地
docker cp school-mysql:/etc/my.cnf G:docker-config-filesSchoolExam
​
# 在[mysqld]下添加以下文本:
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
​
#重新把my.cnf文件上传到容器上,并重启mysql容器
docker cp G:docker-config-filesSchoolExammy.cnf school-mysql:/etc
​

在 Idea上执行 mvn package 把 spring boot项目打包成jar包,并创建Dockerfile文件

注意:如果spring boot 项目中有jsp文件,spring-boot-maven-plugin的版本需要降到1.4.2.RELEASE ,否则会报404。且要在打包时把jsp文件打包到特定路径下,如下:

 

Dockerfile文件内容如下:

# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包以及配置文件复制到docker容器的/conf目录下,这个路径根据自己情况来
COPY exam-web-2.0.jar /exam-web-2.0.jar
COPY application.yml /conf/application.yml
# 声明服务运行在8031端口
EXPOSE 8031
# 指定docker容器启动时运行jar包,并指定配置文件
ENTRYPOINT ["java", "-jar","/exam-web-2.0.jar","--spring.config.location=/conf/application.yml"]
​

创建项目镜像

# 创建镜像文件,需要切换到Dockerfile所在目录下执行,且目录下要有application.yml文件
docker build -t school-exam:2.0 .
​
# 启动镜像
# -v 文件挂载,如果需要修改配置文件,只需要修改G:Lyy_Studyconf目录下
docker run -p 8031:8031 -v  G:Lyy_Studyconf:/conf  --net school-exam --ip 172.20.21.4 --name school-web school-exam:2.0

注:修改application.yml文件中的 redis和mysql连接,改成redis所在容器的ip 以及 mysql所在容器的ip。

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

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

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