RocketMQ Docker 部署完整指令汇总(NameServer + Broker + Dashboard)

环境说明:本文以单机 Docker 部署 RocketMQ 5.1.4 为例,包含 NameServer、Broker、Dashboard,并提供一键启动脚本与常用管理命令。


0. 版本与端口信息(建议先看)

组件 镜像版本 端口 说明
NameServer apache/rocketmq:5.1.4 9876 路由注册中心
Broker apache/rocketmq:5.1.4 10911 / 10909 消息存储与收发
Dashboard apacherocketmq/rocketmq-dashboard:1.0.0 8080 管理控制台

数据目录(持久化):~/docker/rocketmq/


1. 创建数据目录(持久化)

mkdir -p ~/docker/rocketmq/nameserver/logs
mkdir -p ~/docker/rocketmq/nameserver/store
mkdir -p ~/docker/rocketmq/broker/logs
mkdir -p ~/docker/rocketmq/broker/store
mkdir -p ~/docker/rocketmq/broker/conf

2. 拉取 RocketMQ 镜像

docker pull apache/rocketmq:5.1.4
docker pull apacherocketmq/rocketmq-dashboard:1.0.0

3. 启动 NameServer

docker run -d \
  --name rmqnamesrv \
  --restart=always \
  -p 9876:9876 \
  -v ~/docker/rocketmq/nameserver/logs:/root/logs \
  -v ~/docker/rocketmq/nameserver/store:/root/store \
  -e "MAX_POSSIBLE_HEAP=268435456" \
  apache/rocketmq:5.1.4 \
  sh mqnamesrv

4. 启动 Broker

docker run -d \
  --name rmqbroker \
  --restart=always \
  --link rmqnamesrv:namesrv \
  -p 10911:10911 \
  -p 10909:10909 \
  -v ~/docker/rocketmq/broker/logs:/root/logs \
  -v ~/docker/rocketmq/broker/store:/root/store \
  -e "NAMESRV_ADDR=namesrv:9876" \
  -e "MAX_POSSIBLE_HEAP=536870912" \
  apache/rocketmq:5.1.4 \
  sh mqbroker -n namesrv:9876 autoCreateTopicEnable=true

5. 启动 Dashboard 管理界面

docker run -d \
  --name rmqdashboard \
  --restart=always \
  --link rmqnamesrv:namesrv \
  -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876" \
  -p 8080:8080 \
  apacherocketmq/rocketmq-dashboard:1.0.0

访问地址:

  • Dashboard:http://localhost:8080

6. 验证部署状态

# 查看所有容器状态
docker ps | grep rmq

# 查看各组件日志
docker logs rmqnamesrv
docker logs rmqbroker
docker logs rmqdashboard

# 测试 Dashboard 是否能访问(返回前几行 HTML)
curl -s http://localhost:8080 | head -5

7. 常用管理命令(停启/重启/删除)

# 停止所有服务
docker stop rmqdashboard rmqbroker rmqnamesrv

# 启动所有服务
docker start rmqnamesrv rmqbroker rmqdashboard

# 重启所有服务
docker restart rmqnamesrv rmqbroker rmqdashboard

# 删除所有容器(保留数据)
docker rm rmqdashboard rmqbroker rmqnamesrv

# 完全清理(包括数据,谨慎使用)
docker stop rmqdashboard rmqbroker rmqnamesrv
docker rm rmqdashboard rmqbroker rmqnamesrv
rm -rf ~/docker/rocketmq/

8. 供参考的DockerCompose

目录仍按脚本:$HOME/docker/rocketmq/nameserver 和 $HOME/docker/rocketmq/broker
先在主机创建目录(或让 compose 自动创建也行):
mkdir -p ~/docker/rocketmq/nameserver/{logs,store} ~/docker/rocketmq/broker/{logs,store,conf}

services:
  namesrv:
    image: apache/rocketmq:5.1.4
    container_name: rmqnamesrv
    restart: always
    ports:
      - "9876:9876"
    volumes:
      - ${HOME}/docker/rocketmq/nameserver/logs:/root/logs
      - ${HOME}/docker/rocketmq/nameserver/store:/root/store
    environment:
      MAX_POSSIBLE_HEAP: "268435456"
    command: ["sh", "mqnamesrv"]

  broker:
    image: apache/rocketmq:5.1.4
    container_name: rmqbroker
    restart: always
    depends_on:
      - namesrv
    ports:
      - "10911:10911"
      - "10909:10909"
    volumes:
      - ${HOME}/docker/rocketmq/broker/logs:/root/logs
      - ${HOME}/docker/rocketmq/broker/store:/root/store
    environment:
      NAMESRV_ADDR: "namesrv:9876"
      MAX_POSSIBLE_HEAP: "536870912"
    command: ["sh", "mqbroker", "-n", "namesrv:9876", "autoCreateTopicEnable=true"]

  dashboard:
    image: apacherocketmq/rocketmq-dashboard:1.0.0
    container_name: rmqdashboard
    restart: always
    depends_on:
      - namesrv
    ports:
      - "8080:8080"
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876"

9. 配置信息汇总

  • RocketMQ 版本:5.1.4
  • Dashboard 版本:1.0.0
  • NameServer 内存:256MB(MAX_POSSIBLE_HEAP=268435456)
  • Broker 内存:512MB(MAX_POSSIBLE_HEAP=536870912)
  • 管理界面:http://localhost:8080
  • NameServer 地址:localhost:9876
  • 数据存储目录:~/docker/rocketmq/

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐