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

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


http://www.kler.cn/a/554471.html

相关文章:

  • 第3章 3.2 配置系统 .NET Core配置系统
  • JavaScript 性能优化进阶:CPU、内存、I/O 与 V8 优化
  • 基于Java EE“陕西农特产品”网络交易平台设计与实现(源码+文档)
  • [算法学习笔记]1. 枚举与暴力
  • 第7章:在LangChain中如何调用函数Tools (Function Calling)
  • CD3.【C++ Dev】头文件、缺省参数
  • LeeCode题库第二十六题
  • 云服务中的“高可用性架构”是怎样的?
  • 2025-02-20 学习记录--C/C++-PTA 7-26 单词长度
  • SQLSTATE「42000」:Syntax error or access violation: 1055……
  • spring微服务+dubbo框架,某一服务启动时提示多个bean存在
  • playwright 实现自动上传,多元素操作
  • 芝加哥学派(Chicago School):金融与经济学的创新力量(中英双语)
  • 基于Openlayers对GeoServer发布的数据进行增删改
  • 芯谷D2038:高集成度六通道电子音量控制电路的音频解决方案
  • 为什么mvcc中?m_ids 列表并不等同于 min_trx_id 和 max_trx_id 之间的所有事务 ID
  • 在项目中调用本地Deepseek(接入本地Deepseek)
  • jQuery UI CSS 框架 API
  • 【并发测试】Redis并发性能测试
  • Vue学习记录21