百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

「实战」docker-compose 编排 多个docker 组成一个集群并做负载

off999 2025-10-19 11:36 26 浏览 0 评论

本文目标

   docker-compose,对spring boot应用进行一个集群(2个docker,多个类似,只要在docker-compose.yml再加boot应用的服务即可)发布的过程

架构

spring boot使用nginx作为反向代理,redis作为缓存,mysql作为数据库,全部docker化

主要配置文件说明

application-compose.yml

docker-compose.yml

启动springboot项目看看接口情况

生成jar包

复制jar包

生成docker镜像

或者


1 进入到项目所在的目录下
2 cd /Users/mengfanxiao/Documents/project/person/springboot/docker-compose/compose-demo
3 docker build . -t compose-demo:1.0

启动docker compose

docker-compose up -d
d 是不显示运行时的日志输出
使用  docker-compose logs 查看
  可以看到,redis, mysql, spring boot 2个,nginx 的容器都启动了

初始化mysql数据库

  • 查看mysql的docker id
docker ps
  • 把 compose.sql文件copy到docker容器里 /opt目录下
docker cp compose.sql 01bd894f9ebd:/opt
  • 进入mysql的docker容器
docker exec -it 01bd894f9ebd /bin/bash
  • 使用 docker容器里 /opt/compose.sql 初始化数据库1 mysql -u root -p输入docker-compose.yml里设置的root用户的密码 2 source /opt/compose.sql

异常处理

  • Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.
访问 curl 127.0.0.1/redis 报上面的异常
解决方法 不配置redis访问密码
  • Failed to obtain JDBC Connection

访问 http://127.0.0.1/commands 报上面的错
解决方法 mysql docker端口映射

流程梳理

1、打jar包
2、将jar包生成dokcer镜像
3、docker compose   :mysql、redis、2个springboot、nginx 都启动好
4、访问nginx接口路由转发到springboot 然后访问redis和mysql

接口测试

对测试结果分析

  • 因为nginx的端口是80, 所以不用端口号访问
  • 两次 /redis的访问,返回的ip 不一样, 一个是172.18.0.4, 一个172.18.0.5,看来两个boot应用都可以访问了。

扩展

  • 重新开始 执行 docker-compose down
  • 查看 docker-compose.yml里的 db_data 映射到哪里
docker volume ls
  1  图中红框是实际db_data的位置。
  
  2  这里实际保存mysql的数据,即使删除mysql的容器(docker-compose down,  或 docker rm xxx),
   
  3  下次再建立容器时,数据还在,root密码不会变。
 
  4 如果docker-compose里密码改变的话,就要删除db_data这个volume,让docker-compose重建volume, 再重新初始化数据库。
 
     (当然进入 docker容器里改root密码也行,不过这要用mysql客户端,相对麻烦)
  
     docker volume rm compose-demo_db_data

代码资源

https://gitee.com/pingfanrenbiji/compose-demo.git

参考文献

https://www.cnblogs.com/bear129/p/12523573.html

相关推荐

win11笔记本怎么看显卡配置(win10怎么看笔记本显卡)

右键Windows11的开始菜单进入【设备管理器】,再从【显示适配器】中找到对应的显卡,再右键进入【属性】,即可在【驱动程序】标签下看的对应的显卡型号。  1.鼠标右键点击Windows10的开始菜单...

手机云电脑免费软件(手机云电脑要钱吗)

远程桌面就是咯,还有网吧使用的无盘系统。不过现在一台低端电脑价格已经很低了,比那种所谓的云终端贵不了多少,自己家用,仅仅是为了省钱完全没必要这么搞。如果你想在电脑上使用云手机,你可以通过两种方式实现。...

qq怎么看以前删掉的好友(qq怎么看以前删掉的好友记录)
  • qq怎么看以前删掉的好友(qq怎么看以前删掉的好友记录)
  • qq怎么看以前删掉的好友(qq怎么看以前删掉的好友记录)
  • qq怎么看以前删掉的好友(qq怎么看以前删掉的好友记录)
  • qq怎么看以前删掉的好友(qq怎么看以前删掉的好友记录)
winxp重装系统教程(winxp怎么重装系统win10)

创建可引导的USB或DVD安装介质。进入BIOS并从可引导介质启动。选择要安装WindowsXP的语言、时间和货币格式。接受许可协议并点击“下一步”。选择“自定义安装”选项。选择要安装Wi...

手写板(手写板app)

手写板的使用教程相对较简单。首先,你需要将手写板和电脑连接。这可以通过USB线、蓝牙等方式实现。其次,你需要安装手写板相关的驱动程序。这通常随着手写板一起提供,你只需要按照提示安装即可。接着,你...

本地文件删除了怎么恢复(本地文件删除了怎么恢复回来)

方法/步骤1首先在手机里找到“视频”,点击进入。2进入后找到“文件夹”,点击进入。3然后在最下方找到“最近删除”进入。4进入后会看到,最近删除的视频剩余多少天会被永久删除(一般是30天),然后打开需要...

win10强制恢复到win7(win10强制恢复出厂设置教程)

要回到win7系统,首先需要备份好重要的数据,然后从win10系统中回退到win7系统需要重新安装。需要先购买或获取win7的安装盘或镜像文件,然后在安装过程中选择清除磁盘并安装win7,接着按照提示...

windows7安装方式有哪些(windows7安装步骤图解教程)

微软官方推荐WIN7最低安装配置如下:1GHz32-bit或64-bit处理器1GB系统内存16GB硬盘分区支持DirectX9的显卡128MB显存(这样才可以打开玻璃效果!)DVD-R/W...

远程桌面连接怎么用(远程桌面连接怎么用注册表删除)

远程桌面连接的设置方法:首先,远程访问有一定的风险,所以一定要设置好服务器用户的权限,建立远程访问用户。到用户属性下面设置用户的权限。设置服务器远程连接参数,右键点击“我的电脑”,选择“属性”,在弹出...

win10截图键(win10截图键怎么都没用了)

首先,进入“设置–轻松使用–其他选项”,在右侧窗格的“视觉选项”中看一下“在Windows中播放动画”选项是否是开启状态。?如果不是,开启它,然后尝试一下按Win+PrtSc键,看屏幕是否会变...

笔记本内存怎么扩大(笔记本电脑内存怎么扩大)

笔记本系统内存怎么的扩大,答笔记本内存可用下列方法扩大:1、打开【我的电脑】。2、在【计算机】位置点右键,选择【属性】。3、进入系统界面,点击【高级系统设置】。4、点击【高级】-【设置】。5、在【性能...

visio2010安装包(visio 2010安装)

在该对话框中的“选择页”列表中,显示了目前绘图文档中所有的绘图页,包括前景页和背景页等。单击选择所需要的任意页,然后即可单击“确定”...Visio2010和2016都有各自的优势。Visio201...

windows11开机密码忘了(windows11开机密码忘了怎么办)

1.使用安装光盘重装系统:如果你有安装Windows11的光盘,可以用它重装系统,这样就可以抹掉原来的密码,重新设置新的开机密码。2.使用系统安全模式:可以尝试使用Windows11的安全模式...

电脑怎么刷bios教程(电脑刷bios有什么好处)

刷主板bios的方法一  升级主板bios需要主板的最新biosS文件以及刷bios的工具,这些都可以在主板厂商的官方网站上获取到。首先,是下载你的最新版的bios,打开下载的winflash软件,备...

win7gho和iso区别(windows7区别)

区别一:来源不一样1、ISO光盘镜像文件可以直接刻录成光盘使用(带启动),也可以说是一个压缩包!2、GHO是GHOST境像文件、是用GHOST备份的克隆文件,是用ghost恢复系统的时候使用的。区别二...

取消回复欢迎 发表评论: