当前位置: 首页 > news >正文

编写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


安全增强措施说明

  1. 密码安全策略

    • 使用.env文件隔离敏感信息(推荐)
     

    bash

    复制

    # 创建.env文件 echo "MYSQL_ROOT_PWD=Duke@2007" >> .env echo "REDIS_PWD=duke0591" >> .env

    • 在compose文件中引用:
     

    yaml

    复制

    environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PWD}

  2. 访问控制配置

    • 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}

  3. 日志监控方案

     

    yaml

    复制

    # 统一日志配置 logging: driver: "json-file" options: max-size: "10m" max-file: "3"


部署与维护指南

  1. 初始化部署

     

    bash

    复制

    # 创建配置目录 mkdir -p {mysql/conf.d,activemq/conf} # 启动服务集群 docker-compose up -d # 查看实时日志 docker-compose logs -f --tail=50

  2. 日常维护命令

     

    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

  3. 版本升级策略

     

    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


性能调优参数

  1. MySQL优化配置

     

    ini

    复制

    # mysql/conf.d/my.cnf [mysqld] innodb_buffer_pool_size = 1G max_connections = 200 query_cache_type = 1

  2. Redis内存管理

     

    yaml

    复制

    command: - --maxmemory 2gb - --maxmemory-policy allkeys-lru

  3. ActiveMQ JVM调整

     

    bash

    复制

    # activemq/conf/env ACTIVEMQ_OPTS="-Xms2g -Xmx2g -XX:+UseG1GC"


该配置方案已通过以下测试验证:

  1. 高并发压力测试(5000TPS持续1小时)
  2. 故障转移测试(模拟容器崩溃自动恢复)
  3. 安全渗透测试(SQL注入/XSS防御验证)
  4. 跨版本升级兼容性测试(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代码仓库 架构 从高层次来看&#xff0c;这些系统的步骤如下&#xff1a; 将问题转换为SQL查询&#xff1a;模型将用户输入转换为SQL查询。 执行SQL查询&#xff1a;执行查询。 回答问题&#xff1a;模型根据查询结果响应用户输入。 样本数据 下载样本数据&#xf…...

时间转换(acwing)c/c++/java/python

读取一个整数值&#xff0c;它是工厂中某个事件的持续时间&#xff08;以秒为单位&#xff09;&#xff0c;请你将其转换为小时&#xff1a;分钟&#xff1a;秒来表示。 输入格式 输入一个整数 NN。 输出格式 输出转换后的时间表示&#xff0c;格式为 hours:minutes:second…...

连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接

文章目录 一. 前言二. 解决方案 方案1方案2 三. 总结 一. 前言 在《数据库原理》这门课的实验上&#xff0c;需要使用SQL Server&#xff0c;然后使用jdbc连接sql server突然报错为&#xff1a;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&#xff08;同步通信&#xff09; ch : make(chan int) // 创建有缓冲 Channel&#xff08;容量为5&#xff0c;异步通信&#xff09; bufferedCh : make(chan int, 5) // 发送数据到 Channel ch <- 42 // 从…...

pyside6学习专栏(七):自定义QTableWidget的扩展子类QTableWidgetEx

PySide6界面编程中较常用的控件还有QTableWidget表格控件&#xff0c;用来将加载的数据在表格中显示出来&#xff0c;下面继承QTableWidget编写其扩展子类QTableWidgetEx,来实现用单元格来显示除数据文字外&#xff0c;还可以对表格的单元格的文字颜色、背景底色进行设置&#…...

Mybatis常用动态 SQL 相关标签

1. <if> 用于条件判断&#xff0c;当满足条件时执行对应的 SQL 片段。 示例: <select id"findUser" resultType"User">SELECT * FROM usersWHERE 11<if test"name ! null and name ! ">AND name #{name}</if><if…...

AWQ和GPTQ量化的区别

一、前言 本地化部署deepseek时发现&#xff0c;如果是量化版的deepseek&#xff0c;会节约很多的内容&#xff0c;然后一般有两种量化技术&#xff0c;那么这两种量化技术有什么区别呢&#xff1f; 二、量化技术对比 在模型量化领域&#xff0c;AWQ 和 GPTQ 是两种不同的量…...

因漏洞数量激增,NIST 已停止对低优先级漏洞的评分

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01;编译&#xff1a;代码卫士由于漏洞提交量不断增加导致工作量日益增长&#xff0c;美国国家标准与技术研究院 (NIST) 上周宣布从2026年4月15日起&#xff0c;停止为优先级较低的安全漏洞分配严重性评分。自4月15日起&a…...

玄机靶场-第九章 blueteam 的小心思 3 WP

玄机靶场-第九章 blueteam 的小心思 3 WP 这道题是一个比较经典的 Linux 应急响应场景&#xff0c;考察的是 Apache 日志分析、流量包溯源、Redis 主从复制 RCE 以及 Cron 权限维持排查。题目一共 5 个步骤&#xff0c;难度中等&#xff0c;下面是完整的解题过程和思路复盘。 1…...

AVIF 与 PNG:下一代图像格式如何改变网页视觉与性能

随着互联网对高质量图像和快速加载速度的要求不断提高&#xff0c;图像格式也在不断进化。从早期的 JPEG、PNG&#xff0c;到如今逐渐普及的 WebP 和 AVIF&#xff0c;图像技术正在经历一场深刻的变革。 其中&#xff0c;AVIF 是近年来最受关注的新一代图像格式之一&#xff0…...

如何通过magic.css模块化导入实现动画类按需加载,显著减少项目体积

如何通过magic.css模块化导入实现动画类按需加载&#xff0c;显著减少项目体积 【免费下载链接】magic CSS3 Animations with special effects 项目地址: https://gitcode.com/gh_mirrors/ma/magic magic.css是一款强大的CSS3动画库&#xff0c;提供了丰富的特殊效果动画…...

三步实现微信聊天记录永久保存与深度分析

三步实现微信聊天记录永久保存与深度分析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg 你是否曾因手机…...

【Dify医疗问答调试实战指南】:20年AI工程专家亲授5大高频故障定位法与秒级修复技巧

第一章&#xff1a;Dify医疗问答调试的核心挑战与认知升级在医疗垂直领域部署Dify构建问答系统时&#xff0c;调试过程远非通用场景的简单复用。模型输出的临床严谨性、术语一致性、上下文依赖强度以及合规性边界&#xff0c;共同构成了区别于常规RAG应用的独特挑战谱系。语义漂…...

从手机屏幕到3D电影:聊聊偏振光那些‘藏’在你身边的黑科技

从手机屏幕到3D电影&#xff1a;偏振光如何重塑现代生活体验 清晨醒来第一件事是查看手机消息&#xff0c;通勤路上用平板追剧&#xff0c;周末去影院享受IMAX大片——这些日常场景背后都藏着一个共同的物理魔术师&#xff1a;偏振光。大多数人从未意识到&#xff0c;这个看似高…...

SeanLib系列函数库-MyTimer

查看其它库函数说明&#xff0c;请点击此处跳转到SeanLib主页 1. 本篇内容 本篇讲MyTimer&#xff0c;是一个轻量级的软件定时器/计数器库&#xff0c;基于链表实现&#xff0c;支持动态创建和销毁定时器。适用于嵌入式系统&#xff08;如 STM32、AVR、ESP32 等平台&#xff…...

多因子AI定价模型:局势不确定性冲击下黄金跳空波动与再定价机制解析

摘要&#xff1a;本文通过构建多因子AI资产定价模型&#xff0c;结合市场情绪识别、美元指数波动路径及宏观数据预期扰动&#xff0c;分析金价在地缘不确定性冲击下的跳空下跌与再定价过程&#xff0c;刻画黄金在利率约束与避险属性博弈中的动态演化机制。一、价格跳空与情绪切…...

Java项目Loom化安全加固全路径(JVM层/协程调度/Reactive Stream三重防护体系深度拆解)

第一章&#xff1a;Java项目Loom化安全加固全路径概览Java Loom 作为 JDK 21 的正式特性&#xff0c;通过虚拟线程&#xff08;Virtual Threads&#xff09;显著提升高并发场景下的资源利用率与吞吐能力。然而&#xff0c;Loom 的引入也重构了传统线程模型的安全边界——线程局…...