Docker部署RocketMQ并配置Dashboard需三步:启动NameServer、启动含Proxy的Broker、启动Dashboard容器,全部通过镜像完成,依赖专用网络和宿主机真实IP配置,Dashboard通过容器名访问NameServer。

在 Docker 中部署 RocketMQ 并配置 Dashboard,核心是三步:启动 NameServer、启动 Broker(含 Proxy)、再启动 Dashboard 容器,并确保它们网络互通、地址可访问。整个过程不依赖本地 Java 环境,全部通过镜像和配置文件完成。
一、准备基础环境与网络
确保已安装 Docker(20.10+),并验证可用:
docker --version
创建专用网络,避免端口冲突或容器间通信失败:
docker network create rocketmq
建议提前创建持久化目录,用于日志和存储(防止容器重启后数据丢失):
- mkdir -p /data/rocketmq/{logs,store}
- chmod -R 777 /data/rocketmq(开发环境可接受;生产建议细化权限)
二、启动 NameServer 和 Broker
NameServer 是注册中心,Broker 依赖它发现集群节点。两者需在同一网络中,且 Broker 必须通过容器名(如 rmqnamesrv)连接 NameServer。
启动 NameServer:
docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq apache/rocketmq:5.3.2 sh mqnamesrv
启动 Broker(含 Proxy,5.x 默认启用):
先创建 broker.conf 文件(路径如 /data/rocketmq/conf/broker.conf):
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.41.121 ← 替换为宿主机真实 IP(非 127.0.0.1)
listenPort = 10911
namesrvAddr = rmqnamesrv:9876
再运行 Broker 容器:
docker run -d \
--name rmqbroker \
--network rocketmq \
-p 10911:10911 -p 10912:10912 -p 10909:10909 \
-v /data/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf \
-v /data/rocketmq/logs:/home/rocketmq/logs \
-v /data/rocketmq/store:/home/rocketmq/store \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
apache/rocketmq:5.3.2 sh mqbroker --enable-proxy -c /home/rocketmq/rocketmq-5.3.2/conf/broker.conf
验证是否就绪:
- docker logs -f rmqnamesrv → 出现 The Name Server boot success..
- docker exec rmqbroker tail -n 5 /home/rocketmq/logs/rocketmqlogs/proxy.log → 出现 The proxy boot success
三、部署 RocketMQ Dashboard 可视化界面
Dashboard 是独立服务,只读取 NameServer 地址即可监控集群状态,无需挂载数据卷。
拉取并运行最新版 Dashboard 镜像:
docker pull apacherocketmq/rocketmq-dashboard:latest
docker run -d \
--name rmqdashboard \
--network rocketmq \
-p 8080:8080 \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" \
apacherocketmq/rocketmq-dashboard:latest
注意:namesrv.addr 必须写容器名 + 端口(rmqnamesrv:9876),不能填宿主机 IP(除非使用 host 网络模式)。
启动后访问:http://localhost:8080(若在远程服务器,需确认安全组放行 8080 端口)。
默认账号密码为:admin / 123456(首次登录后可在配置中修改)。
四、补充说明与常见问题
如果用 Docker Compose 管理更简洁,可直接使用标准 docker-compose.yml 模板,定义 namesrv、broker、dashboard 三个 service,统一 network 和 depends_on 依赖关系。
遇到连接失败,重点检查三项:
- Broker 的 brokerIP1 是否设为宿主机真实 IP(Mac/Windows 用户注意 Docker Desktop 的虚拟网关行为)
- Dashboard 的 NAMESRV_ADDR 是否指向容器内可解析的名称(即同 network 下的 namesrv 容器名)
- 防火墙或云平台安全组是否开放 9876、10911、8080 端口
部署完成后,可用 mqadmin 进入 broker 容器手动创建 Topic,或通过 Dashboard 页面操作。


















