docker-compose脚本一键部署 rocketmq + rocketmq-dashboard

1、先创建内部网络

yaml 复制代码
docker network create --driver bridge testnetwork

2、脚本,注意:第一次启动会报错,因为找不到/home/rocketmq/rocketmq-5.3.1/conf/broker.conf,所以broker.conf需要手动创建

yaml 复制代码
# broker 核心配置
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
listenPort = 10911
# 允许自动创建主题(新手必备)
autoCreateTopicEnable = true
# 允许自动创建订阅组
autoCreateSubscriptionGroup = true
# 存储路径(容器内路径,无需改)
storePathRootDir = /home/rocketmq/store
storePathCommitLog = /home/rocketmq/store/commitlog
# 关键修正:指定 Broker 注册地址为容器名(rmqbroker),而非 0.0.0.0
brokerIP1 = rmqbroker
# 关闭 VIP 通道(Dashboard 连接必备)
vipChannelEnabled = false
# 名称服务器地址(容器内指向 namesrv)
namesrvAddr = namesrv:9876
# 刷盘策略(新手用异步,性能高)
flushDiskType = ASYNC_FLUSH
# 日志保留时间(72小时)
fileReservedTime = 72
端口号 核心功能 单机部署必需性 主从部署必需性
10911 客户端主通信 ✔️ 必需 ✔️ 必需
10909 VIP通道(兼容/备用) ❌ 可选(推荐) ❌ 可选(推荐)
10912 主从数据同步(HA) ❌ 可选(推荐) ✔️ 必需端口 核心用途 单机部署是否必须 主从部署是否必须
yaml 复制代码
version: '3.8'
services:
  namesrv:
    image: apache/rocketmq:5.3.1
    container_name: rmqnamesrv
    ports:
      - "9876:9876"
    networks:
      - testnetwork
    command: sh mqnamesrv
    restart: always

  broker:
    image: apache/rocketmq:5.3.1
    container_name: rmqbroker
    ports:
      - "10909:10909"
      - "10911:10911"
      - "10912:10912"
    volumes:
      - /mnt/data/rocketmq/conf:/home/rocketmq/rocketmq-5.3.1/conf
      - /mnt/data/rocketmq/broker/logs:/home/rocketmq/logs
      - /mnt/data/rocketmq/broker/store:/home/rocketmq/store
    environment:
      - NAMESRV_ADDR=namesrv:9876
    depends_on:
      - namesrv
    networks:
      - testnetwork
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf
    restart: always

  dashboard:
    image: apacherocketmq/rocketmq-dashboard:latest
    container_name: rmqdashboard
    ports:
      - "8082:8082"
    networks:
      - testnetwork
    environment:
      - "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - namesrv
      - broker
    restart: always
networks:
  testnetwork:
    external: true

3、执行启动命令

powershell 复制代码
docker-compose -f 17-rocketmq.yml up -d
相关推荐
探索云原生9 小时前
终于搞懂 Kueue:5 个核心对象一次讲透
linux·docker·ai·云原生·kubernetes
AI服务老曹10 小时前
Docker部署AI视频分析平台参数配置说明与调优指南
人工智能·docker·音视频
eggcode11 小时前
docker拉取、重命名、导出导入、删除镜像的示例
docker
蜀道山老天师12 小时前
从零读懂 K8s:核心概念、集群架构与工作原理
容器·架构·kubernetes
静待雨落14 小时前
Docker 高频命令
docker·容器
Java小白笔记14 小时前
Docker 命令大全:从入门到精通的完整指令集
spring cloud·docker
Java面试题总结14 小时前
Vibe Coding最重要的是Spec
docker
OsDepK15 小时前
Windows快速部署Docker
运维·docker·容器
不能只会打代码16 小时前
校享云 — 高校智慧后勤平台微服务架构设计与实践
spring cloud·docker·微服务·nacos·vue·校享云
前端Baymax18 小时前
kube-proxy iptables模式下NodePort间歇性超时
docker·容器·kubernetes