【实战】docker-compose 编排 多个docker 组成一个集群并做负载(2)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 【实战】docker-compose 编排 多个docker 组成一个集群并做负载(2)

image.png



image.png


使用 docker容器里 /opt/compose.sql 初始化数据库


1⃣️ mysql -u root -p


输入docker-compose.yml里设置的root用户的密码


2⃣️ source /opt/compose.sql


image.png


异常处理


  • Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.


访问 curl 127.0.0.1/redis 报上面的异常
解决方法 不配置redis访问密码


image.png


  • Failed to obtain JDBC Connection
访问 http://127.0.0.1/commands 报上面的错
解决方法 mysql docker端口映射


image.png


流程梳理

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


image.png


image.png


对测试结果分析


  • 因为nginx的端口是80, 所以不用端口号访问


  • 两次 /redis的访问,返回的ip 不一样, 一个是172.18.0.4, 一个172.18.0.5,看来两个boot应用都可以访问了。


扩展


  • 重新开始 执行 docker-compose down


  • 查看 docker-compose.yml里的 db_data 映射到哪里


docker volume ls



image.png


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
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
关系型数据库 MySQL 应用服务中间件
从零开始,掌握Nacos搭建的艺术(单点、集群、docker-compose)
从零开始,掌握Nacos搭建的艺术(单点、集群、docker-compose)
54 0
|
16天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
1月前
|
负载均衡 容灾 安全
Docker Swarm总结+基础、集群搭建维护、安全以及集群容灾(1/5)
Docker Swarm总结+基础、集群搭建维护、安全以及集群容灾(1/5)
69 2
|
1月前
|
NoSQL Redis Docker
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
68 0
|
1月前
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
64 0
|
1月前
|
Unix Docker 容器
【超强图解Docker常见命令与实战】
【超强图解Docker常见命令与实战】
51 0
|
1月前
|
存储 负载均衡 网络协议
docker集群的详解以及超详细搭建
手拿把掐学会搭建docker集群
|
2月前
|
Java Linux Docker
Docker入门到实战
Docker入门到实战、Centos7安装Docker
|
2月前
|
开发工具 Docker 容器
docker安装集群版ElasticSearch
docker安装集群版ElasticSearch
|
2月前
|
Cloud Native Go 数据安全/隐私保护
自定义Docker镜像推送到Docker Hub实战
自定义Docker镜像推送到Docker Hub实战
87 2
自定义Docker镜像推送到Docker Hub实战