
本方案提供通过docker-compose一键部署RocketMQ消息队列服务及管理控制台的完整流程,包含NameServer(服务注册与发现)、Broker(消息存储与转发)和RocketMQ控制台(可视化管理界面)三个核心组件,适用于快速搭建RocketMQ开发测试环境或小型生产环境。
broker.conf文件自定义Broker集群配置、存储策略等核心参数depends_on确保服务启动顺序,保障组件间通信正常1.1 创建broker.conf配置文件
创建./data/broker/conf/broker.conf文件,配置内容如下:
shell# MQ集群名称 brokerClusterName = DefaultCluster # Broker名称,主从节点使用相同名称 brokerName = broker-master # 节点角色:0表示Master,大于0表示Slave brokerId = 0 # 消息删除时间(默认凌晨4点) deleteWhen = 04 # 消息在磁盘保留时长(小时) fileReservedTime = 24 # Broker角色:SYNC_MASTER(同步主节点)、ASYNC_MASTER(异步主节点)、SLAVE(从节点) brokerRole = ASYNC_MASTER # 刷盘策略:SYNC_FLUSH(同步刷盘)、ASYNC_FLUSH(异步刷盘) flushDiskType = ASYNC_FLUSH # Broker所在服务器IP地址(需替换为实际主机IP) brokerIP1 = 192.168.0.102
注意:
brokerIP1需根据实际部署环境替换为主机公网或局域网IP
1.2 创建docker-compose.yml文件
在项目根目录创建docker-compose.yml文件,内容如下:
yamlservices: namesrv: image: liweigo/rocketmq:4.9.4 container_name: rmqnamesrv ports: - 9876:9876 # NameServer默认端口 volumes: - ./data/namesrv/logs:/home/rocketmq/logs # 日志持久化 command: sh mqnamesrv # 启动NameServer命令 broker: image: liweigo/rocketmq:4.9.4 container_name: rmqbroker ports: - 10909:10909 # 客户端通信端口 - 10911:10911 # 主从同步端口 - 10912:10912 # 高可用端口 volumes: - ./data/broker/logs:/home/rocketmq/logs # 日志持久化 - ./data/broker/store:/home/rocketmq/store # 消息存储持久化 - ./data/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.9.4/conf/broker.conf # 配置文件挂载 environment: NAMESRV_ADDR: "namesrv:9876" # NameServer地址 JAVA_OPTS: " -Duser.home=/opt" # Java环境配置 JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m" # JVM内存参数 command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf # 启动Broker并指定配置文件 depends_on: - namesrv # 依赖NameServer服务 rmqconsole: image: liweigo/rocketmq-console-ng container_name: rmqconsole ports: - 18080:8080 # 控制台访问端口 environment: JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" # 控制台配置 depends_on: - namesrv # 依赖NameServer服务
在docker-compose.yml文件所在目录执行以下命令启动服务:
shelldocker-compose up -d
-d参数表示后台运行容器
http://localhost:9876,返回RocketMQNameServer表示启动成功http://localhost:18080,通过控制台界面验证Broker状态及消息队列信息在docker-compose.yml文件所在目录执行以下命令停止服务:
shelldocker-compose down
| 参数名 | 说明 | 可选值 | 默认值 |
|---|---|---|---|
| brokerClusterName | 集群名称 | - | DefaultCluster |
| brokerName | Broker节点名称(主从需一致) | - | broker-master |
| brokerId | 节点角色标识 | 0(Master)/ >0(Slave) | 0 |
| deleteWhen | 消息删除时间(小时) | 00-23 | 04 |
| fileReservedTime | 消息保留时长(小时) | 正整数 | 24 |
| brokerRole | Broker角色 | SYNC_MASTER/ASYNC_MASTER/SLAVE | ASYNC_MASTER |
| flushDiskType | 刷盘策略 | SYNC_FLUSH/ASYNC_FLUSH | ASYNC_FLUSH |
| brokerIP1 | Broker服务IP地址 | 实际主机IP | - |
| 服务 | 环境变量 | 说明 |
|---|---|---|
| broker | NAMESRV_ADDR | NameServer服务地址,格式为{namesrv容器名}:9876 |
| broker | JAVA_OPT_EXT | JVM内存配置,如-server -Xms512m -Xmx512m -Xmn256m |
| rmqconsole | JAVA_OPTS | 控制台配置,需指定NameServer地址和VIP通道设置 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务