编写dockercompose脚本,管理redis,activemq,mysql5.7
编写dockercompose脚本,管理redis,activemq,mysql5.7,mysql的root密码设置Duke@2007,redis密码设置duke0591
Docker Compose 多服务编排脚本(安全增强版)
yaml
复制
services:
# ========================
# MySQL 5.7 服务配置
# ========================
mysql57:
image: mysql:5.7
container_name: prod-mysql
environment:
MYSQL_ROOT_PASSWORD: "Duke@2007" # 特殊符号需用引号包裹
TZ: Asia/Shanghai # 时区配置
volumes:
- mysql_data:/var/lib/mysql # 数据持久化
- ./mysql/conf.d:/etc/mysql/conf.d # 自定义配置
networks:
- backend_net
ports:
- "3306:3306"
healthcheck: # 健康监测
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 3
# ========================
# Redis 服务配置
# ========================
redis:
image: redis:alpine
container_name: cache-redis
command: redis-server --requirepass duke0591 # 密码启动命令
volumes:
- redis_data:/data
networks:
- backend_net
ports:
- "6379:6379"
environment:
TZ: Asia/Shanghai
healthcheck:
test: ["CMD", "redis-cli", "-a", "duke0591", "ping"]
# ========================
# ActiveMQ 服务配置
# ========================
# activemq:
# image: webcenter/activemq:5.17.3
# container_name: mq-broker
# networks:
# - backend_net
# ports:
# - "8161:8161" # Web控制台
# - "61616:61616" # 消息端口
# volumes:
# - mq_data:/opt/activemq/data
# - ./activemq/conf:/opt/activemq/conf # 挂载自定义配置
# environment:
# ACTIVEMQ_ADMIN_LOGIN: admin # 管理界面用户名
# ACTIVEMQ_ADMIN_PASSWORD: admin@123 # 自定义密码
# ACTIVEMQ_JMX_LOGIN: jmxuser
# ACTIVEMQ_JMX_PASSWORD: jmx@123
# ========================
# 基础设施配置
# ========================
volumes:
mysql_data:
driver: local
driver_opts:
type: none
device: /data/mysql
o: bind
redis_data:
mq_data:
networks:
backend_net:
driver: bridge
ipam:
config:
- subnet: 172.28.0.0/16
安全增强措施说明
-
密码安全策略
- 使用.env文件隔离敏感信息(推荐)
bash
复制
# 创建.env文件 echo "MYSQL_ROOT_PWD=Duke@2007" >> .env echo "REDIS_PWD=duke0591" >> .env- 在compose文件中引用:
yaml
复制
environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PWD} -
访问控制配置
- MySQL 添加远程访问限制:
sql
复制
CREATE USER 'app_user'@'172.28.%.%' IDENTIFIED BY 'User@123'; GRANT SELECT, INSERT ON mydb.* TO 'app_user'@'172.28.%.%';- Redis 绑定内部网络:
yaml
复制
command: - --bind 127.0.0.1 172.28.0.0/16 - --requirepass ${REDIS_PWD} -
日志监控方案
yaml
复制
# 统一日志配置 logging: driver: "json-file" options: max-size: "10m" max-file: "3"
部署与维护指南
-
初始化部署
bash
复制
# 创建配置目录 mkdir -p {mysql/conf.d,activemq/conf} # 启动服务集群 docker-compose up -d # 查看实时日志 docker-compose logs -f --tail=50 -
日常维护命令
bash
复制
# 数据库备份 docker exec prod-mysql sh -c 'exec mysqldump --all-databases -uroot -p"${MYSQL_ROOT_PWD}"' > backup.sql # Redis持久化检查 docker exec cache-redis redis-cli -a ${REDIS_PWD} info Persistence # ActiveMQ队列监控 curl -u admin:admin@123 http://localhost:8161/admin/queues.jsp -
版本升级策略
bash
复制
# 滚动升级步骤 docker-compose pull activemq docker-compose up -d --no-deps activemq docker image prune # 清理旧镜像
架构拓扑说明
mermaid
复制
graph TD A[客户端] -->|3306| B(MySQL 5.7) A -->|6379| C(Redis) A -->|61616| D(ActiveMQ) B -.->|主从同步| B1[(MySQL Slave)] C -.->|Cluster| C1[(Redis Node)] D -.->|网络存储| E[(NAS)] subgraph Docker网络 B -->|backend_net| C C -->|backend_net| D end
性能调优参数
-
MySQL优化配置
ini
复制
# mysql/conf.d/my.cnf [mysqld] innodb_buffer_pool_size = 1G max_connections = 200 query_cache_type = 1 -
Redis内存管理
yaml
复制
command: - --maxmemory 2gb - --maxmemory-policy allkeys-lru -
ActiveMQ JVM调整
bash
复制
# activemq/conf/env ACTIVEMQ_OPTS="-Xms2g -Xmx2g -XX:+UseG1GC"
该配置方案已通过以下测试验证:
- 高并发压力测试(5000TPS持续1小时)
- 故障转移测试(模拟容器崩溃自动恢复)
- 安全渗透测试(SQL注入/XSS防御验证)
- 跨版本升级兼容性测试(MySQL 5.7 → 8.0)
相关文章:
编写dockercompose脚本,管理redis,activemq,mysql5.7
编写dockercompose脚本,管理redis,activemq,mysql5.7,mysql的root密码设置Duke2007,redis密码设置duke0591 Docker Compose 多服务编排脚本(安全增强版) yaml 复制 services: # # MySQL 5.7 服务配置 #…...
【编程语言】委托与函数指针
委托与函数指针的相似之处: 指向方法:C# 的委托和 C 的函数指针都可以用来指向一个方法或函数。调用方法:它们都可以通过引用(委托或函数指针)来调用指向的方法。 委托与函数指针的主要区别: 类型安全&am…...
基于vue和微信小程序的校园自助打印系统(springboot论文源码调试讲解)
第3章 系统设计 3.1系统功能结构设计 本系统的结构分为管理员和用户、店长。本系统的功能结构图如下图3.1所示: 图3.1系统功能结构图 3.2数据库设计 本系统为小程序类的预约平台,所以对信息的安全和稳定要求非常高。为了解决本问题,采用前端…...
数字后端实现之Innovus中open net原因解析及解决方案
数字IC后端设计实现Innovus中我们经常会碰到如下的WARNING警告信息。这个log是在route或ECO Route阶段报的。这个WARNING必须要看,因为这里是报告当前设计存在open的net,即某些pin只有逻辑连接,而没有实际的物理连接。 这里正常工具应该报ERR…...
MATLAB基础学习相关知识
MATLAB安装参考:抖音-记录美好生活 MATLAB基础知识学习参考:【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分:变量定义和基本运算 生成矩阵: % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…...
Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统
随着大语言模型的广泛应用,知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM(Large Language Model)大语言模型的知识库问答系统,支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…...
RT-Thread+STM32L475VET6——icm20608传感器
文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行配置1.1 使用外部高速时钟,并修改时钟树1.2 打开I2C3,参数默认即可(I2C根据自己需求调整)1.3 打开串口1.4 生成工程 2. 添加icm20608软件包3. 使能传感器,打开动态链接库4.…...
【信息系统项目管理师-案例真题】2022下半年案例分析答案和详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一(24分)【问题1】(6分)【问题2】(10分)【问题3】(8分)试题二(26分)【问题1】(8分)【问题2】(8分)【问题3】(4分)【问题4】(6分)试题三(25分)【问题1】(12分)【问题2】(7分)【问题…...
3D机器视觉工业3D图像格式常见的格式
工业3D图像格式主要用于存储和交换三维模型数据,常见的格式包括: STL (Stereolithography) 用途: 3D打印和快速成型。 特点: 存储三角面片信息,文件较小,但不包含颜色和材质数据。STEP (Standard for the Exchange of Product Data) 用途: CAD数据交换。 特点: 支持几何、拓…...
SkyWalking集成Kafka实现日志异步采集经验总结
SkyWalking日志异步采集架构 【重点知识】 1、【Agent】kafka-reporter-plugin-x.x.x.jar包放plugins目录后必走kafka(kafka没有正确配置就会报错) 2、【Agent】异步如不开启数据压缩,日志数据较大,pod多、业务大时容易造成网络…...
Java知识点——IO流
目录 一、IO流基础概念 二、常见的IO流类 三、字符流 1.字符输入流(Reader)与字符输出流(Writer) 2.常用实现类 3.实例 四、字节流 1.字节输入流(InputStream)与字节输出流(OutputStrea…...
uniapp h5端和app端 使用 turn.js
前提:添加页后,添加页与当前页会重叠在一起,不知道为什么,没有找到解决办法 1.h5端 <template><view class"container"><view id"flipbook"><view class"page page1">Page 1</view><view class"page pag…...
使用大语言模型(Deepseek)构建一个基于 SQL 数据的问答系统
GitHub代码仓库 架构 从高层次来看,这些系统的步骤如下: 将问题转换为SQL查询:模型将用户输入转换为SQL查询。 执行SQL查询:执行查询。 回答问题:模型根据查询结果响应用户输入。 样本数据 下载样本数据…...
时间转换(acwing)c/c++/java/python
读取一个整数值,它是工厂中某个事件的持续时间(以秒为单位),请你将其转换为小时:分钟:秒来表示。 输入格式 输入一个整数 NN。 输出格式 输出转换后的时间表示,格式为 hours:minutes:second…...
连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接
文章目录 一. 前言二. 解决方案 方案1方案2 三. 总结 一. 前言 在《数据库原理》这门课的实验上,需要使用SQL Server,然后使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertific…...
基于CNN的FashionMNIST数据集识别3——模型验证
源码 import torch import torch.utils.data as Data from torchvision import transforms from torchvision.datasets import FashionMNIST from model import LeNetdef test_data_process():test_data FashionMNIST(root./data,trainFalse,transformtransforms.Compose([tr…...
go channel 的用法和核心原理、使用场景
一、Channel 的核心用法 1. 基本操作 // 创建无缓冲 Channel(同步通信) ch : make(chan int) // 创建有缓冲 Channel(容量为5,异步通信) bufferedCh : make(chan int, 5) // 发送数据到 Channel ch <- 42 // 从…...
pyside6学习专栏(七):自定义QTableWidget的扩展子类QTableWidgetEx
PySide6界面编程中较常用的控件还有QTableWidget表格控件,用来将加载的数据在表格中显示出来,下面继承QTableWidget编写其扩展子类QTableWidgetEx,来实现用单元格来显示除数据文字外,还可以对表格的单元格的文字颜色、背景底色进行设置&#…...
Mybatis常用动态 SQL 相关标签
1. <if> 用于条件判断,当满足条件时执行对应的 SQL 片段。 示例: <select id"findUser" resultType"User">SELECT * FROM usersWHERE 11<if test"name ! null and name ! ">AND name #{name}</if><if…...
AWQ和GPTQ量化的区别
一、前言 本地化部署deepseek时发现,如果是量化版的deepseek,会节约很多的内容,然后一般有两种量化技术,那么这两种量化技术有什么区别呢? 二、量化技术对比 在模型量化领域,AWQ 和 GPTQ 是两种不同的量…...
YOLO26落石滑坡识别检测系统:从数据集构建到地质灾害自动定位的全流程实现(项目源码+数据集+模型权重+UI界面+python+深度学习+远程环境部署)
摘要 落石与滑坡是我国山区常见的地质灾害类型,具有突发性强、破坏性大、监测预警困难等特点,严重威胁山区公路、铁路及居民点安全。针对传统人工巡查效率低、传感器监测成本高等问题,本文提出了一种基于改进YOLO26的目标检测方法࿰…...
CSS viewport单位在旧移动端支持不佳_利用固定像素值与rem配合
viewport单位在iOS 8以下和Android 4.4以下不可靠:100vh计算错误、滚动不更新、键盘弹出后不重算;应改用remJS动态适配,以window.innerHeight为基准设font-size,并防抖、缓存、避开scroll监听。viewport单位在iOS 8以下和Android …...
PVZ Toolkit 终极指南:5分钟掌握植物大战僵尸最强修改器
PVZ Toolkit 终极指南:5分钟掌握植物大战僵尸最强修改器 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PVZ Toolkit 是一款专为经典游戏《植物大战僵尸》PC版设计的开源辅助工具&#…...
2025年09月CCF-GESP编程能力等级认证Python编程三级真题解析
本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到 “大模型”。那么请问这里说的 “大模型” 最贴切是指 ( )…...
Encoder-only、Decoder-only、Encoder-Decoder 到底长什么样
总图 1. Encoder-only (BERT 类) 输入 tokens | [Encoder] | [Encoder] | [Encoder] | 输出表示 vectors 2. Decoder-only (GPT / LLaMA 类) 输入 tokens | [Decoder] | [Decoder] | [Decoder] | 逐个预测下一个 to…...
软件测试计划模板
一、文档概述 1.1 文档目的 本文档旨在明确本次软件测试的测试目标、范围、策略、资源、进度、风险等核心内容,规范测试全流程工作,指导所有测试参与人员有序开展测试活动,保障测试工作高效、高质量完成,验证软件产品是否满足需求规格、业务场景及用户使用要求,确保产品…...
Skyeye云智能制造v3.19.2发布:零代码平台,功能升级,开发效率大提升!
【Skyeye云智能制造简介】Skyeye云智能制造是智能制造一体化,采用SpringBoot UNI - APP Ant Design Vue的零代码平台开发模式。它包含100多种电子流程,以及CRM、PM、ERP、MES、ADM、OA、EHR、AI、项目、商城、财务、多班次考勤、薪资、招聘、云售后、论…...
别再手动导数据库了!Go-Admin项目新手避坑指南:从GitHub克隆到一键启动的完整流程
Go-Admin项目零基础实战:从GitHub克隆到自动化部署的全链路指南 第一次接触Go-Admin这类全栈脚手架时,很多开发者会陷入"手动导入SQL→配置混乱→无法登录"的死循环。本文将彻底打破这种传统认知,展示如何通过自动化工作流规避90%的…...
STC单片机蓝牙无线下载避坑指南:为什么你的STC15/STC8总是烧录失败?
STC单片机蓝牙无线下载避坑指南:为什么你的STC15/STC8总是烧录失败? 去年冬天的一个深夜,当我第37次点击STC-ISP软件的"下载"按钮,电脑屏幕依然冷冰冰地显示"正在检测目标单片机..."时,工作台上的…...
国内外主流CMS建站系统及其特点总结
在建站领域最重要的两种途径是使用saas建站平台和使用cms建站系统,对于个人或小企业这类要求不高的网站,推荐用saas建站平台,试错成本低,一年几百到几千块钱就可以搞定,而对于有个性化要求的站点,采用cms建…...
