五分钟教你docker部署RocketMQ
环境说明:本文以单机 Docker 部署 RocketMQ 5.1.4 为例,包含 NameServer、Broker、Dashboard,并提供一键启动脚本与常用管理命令。
·
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/
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)