
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为基于Alpine Linux的RocketMQ轻量级部署方案,集成了RocketMQ核心组件(Namesrv、Broker)及管理控制台(Dashboard),提供了Docker Compose和Kubernetes两种部署方式,适用于开发、测试及轻量级生产环境的消息队列部署与管理。
1.1 Dashboard部署
yamlversion: '3' services: dashboard: container_name: dashboard image: lhstack/rocketmq:dashboard-5.1.0 ports: - '8080:8080' # 管理界面端口 environment: NAMESRV_ADDRS: "192.168.3.188:9876,192.168.3.188:9886" # 多个Namesrv地址用逗号分隔 ACCESS_KEY: "RocketMq" # ACL启用时的访问密钥 SECRET_KEY: "12345678" # ACL启用时的密钥 USE_TLS: true # 是否启用TLS加密 LOGIN_REQUIRED: true # 是否需要登录认证(对应DATA/users.properties) DATA: /root/data # 数据保存路径 MSG_TRACK_TOPIC_NAME: "test-track-topic" # 自定义消息轨迹Topic deploy: resources: limits: cpus: 50m memory: 512M logging: options: max-size: 1k max-file: 1
1.2 RocketMQ服务部署(Namesrv+Broker)
yamlversion: '3' services: namesrv: container_name: namesrv image: lhstack/rocketmq:4.9.3-alpine environment: JAVA_OPT: "-Xmx64m -Xms64m -XX:MaxMetaspaceSize=32m" # JVM参数 logging: options: max-file: '1' max-size: '16k' restart: always ports: - '9886:9886' # Namesrv服务端口 deploy: resources: limits: cpus: '0.5' memory: '128M' networks: rocketmq: ipv4_address: 168.128.98.76 # 固定IP command: - sh - -c - | cat >/namesrv.properties<<EOF listenPort=9886 # 监听端口 useEpollNativeSelector=true # 使用Epoll选择器 EOF mqnamesrv -c /namesrv.properties # 启动Namesrv broker: container_name: broker image: lhstack/rocketmq:4.9.3-alpine environment: JAVA_OPT: "-Xmx384m -Xms384m -XX:MaxMetaspaceSize=128m" # JVM参数 depends_on: - namesrv # 依赖Namesrv服务 logging: options: max-file: '1' max-size: '16k' restart: always deploy: resources: limits: cpus: '0.5' memory: '512M' network_mode: host # 使用主机网络 command: - sh - -c - | cat > /broker.conf<<EOF brokerClusterName = DefaultCluster # 集群名称 brokerName = broker-a # Broker名称 brokerId = 0 # Broker ID(0为主节点) deleteWhen = 04 # 清理过期文件时间(凌晨4点) fileReservedTime = 48 # 文件保留时间(小时) brokerRole = ASYNC_MASTER # Broker角色(异步主节点) flushDiskType = ASYNC_FLUSH # 刷盘方式(异步刷盘) aclEnable = false # 是否启用ACL listenPort = 10922 # Broker服务端口 namesrvAddr = 168.128.98.76:9886 # Namesrv地址 EOF mqbroker -c /broker.conf # 启动Broker networks: rocketmq: driver: bridge ipam: driver: default config: - subnet: '168.128.0.0/16' # 网络子网
2.1 服务与配置定义
yaml# Namesrv服务 apiVersion: v1 kind: Service metadata: name: rocketmq-namesrv spec: type: ClusterIP ports: - name: tcp port: 9876 # 服务端口 selector: app: rocketmq-namesrv # 匹配Pod标签 --- # 配置集 apiVersion: v1 kind: ConfigMap metadata: name: rocketmq data: # Namesrv配置 namesrv.properties: | listenPort=9876 useEpollNativeSelector=true # Broker配置 broker.conf: | brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH aclEnable = true # 启用ACL listenPort = 10911 namesrvAddr = rocketmq-namesrv.default.svc.cluster.local:9876 # Kubernetes内部Namesrv地址 # ACL配置 plain-acl.yml: | globalWhiteRemoteAddresses: accounts: - accessKey: RocketMq # 管理员账号 secretKey: 12345678 whiteRemoteAddress: admin: true - accessKey: TestAccount # 普通用户账号 secretKey: TestSecret whiteRemoteAddress: admin: false defaultTopicPerm: DENY defaultGroupPerm: SUB topicPerms: - topicA=DENY groupPerms: - groupA=DENY
2.2 Namesrv Pod部署
yamlapiVersion: v1 kind: Pod metadata: name: rocketmq-namesrv labels: app: rocketmq-namesrv spec: volumes: - name: conf configMap: name: rocketmq items: - key: namesrv.properties path: namesrv.properties # 挂载配置文件 containers: - name: rocketmq-namesrv image: lhstack/rocketmq imagePullPolicy: IfNotPresent volumeMounts: - name: conf mountPath: /namesrv.properties subPath: namesrv.properties resources: requests: cpu: 10m memory: 32Mi limits: cpu: 20m memory: 64Mi ports: - name: tcp containerPort: 9876 env: - name: JAVA_OPT value: "-Xmx64m -Xms64m -Xmn1m" # JVM参数 command: - sh - -c - | mqnamesrv -c /namesrv.properties # 启动Namesrv
2.3 Broker Deployment部署
yamlapiVersion: apps/v1 kind: Deployment metadata: name: rocketmq-broker spec: replicas: 1 # 副本数 selector: matchLabels: app: rocketmq-broker template: metadata: labels: app: rocketmq-broker spec: volumes: - name: conf configMap: name: rocketmq items: - key: broker.conf path: broker.conf # Broker配置 - name: plain configMap: name: rocketmq items: - key: plain-acl.yml path: plain-acl.yml # ACL配置 - name: data hostPath: path: /home/rocketmq/data # 数据持久化路径 containers: - name: rocketmq-broker image: lhstack/rocketmq imagePullPolicy: IfNotPresent ports: - name: tcp containerPort: 10911 resources: requests: cpu: 50m memory: 128Mi limits: cpu: 100m memory: 1.2Gi env: - name: JAVA_OPT value: "-Xmx1g -Xms1g" # JVM参数 volumeMounts: - name: data mountPath: /root # 数据挂载点 - name: conf mountPath: /broker.conf subPath: broker.conf - name: plain mountPath: /rocketmq/conf/plain_acl.yml subPath: plain-acl.yml command: - sh - -c - mqbroker -c /broker.conf # 启动Broker
| 参数名 | 说明 | 示例 |
|---|---|---|
| NAMESRV_ADDRS | Namesrv地址列表(多个用逗号分隔) | "192.168.3.188:9876,192.168.3.188:9886" |
| ACCESS_KEY | ACL访问密钥(ACL启用时必填) | "RocketMq" |
| SECRET_KEY | ACL密钥(ACL启用时必填) | "***" |
| USE_TLS | 是否启用TLS | true/false |
| LOGIN_REQUIRED | 是否需要登录认证 | true/false |
| DATA | 数据保存路径 | "/root/data" |
| MSG_TRACK_TOPIC_NAME | 消息轨迹Topic名称 | "test-track-topic" |
| 参数名 | 说明 | 示例 |
|---|---|---|
| listenPort | 监听端口 | 9876 |
| useEpollNativeSelector | 是否使用Epoll选择器 | true |
| 参数名 | 说明 | 示例 |
|---|---|---|
| brokerClusterName | 集群名称 | "DefaultCluster" |
| brokerName | Broker名称 | "broker-a" |
| brokerId | Broker ID(0为主节点) | 0 |
| deleteWhen | 清理过期文件时间(小时) | "04" |
| fileReservedTime | 文件保留时间(小时) | 48 |
| brokerRole | Broker角色(SYNC_MASTER/ASYNC_MASTER/SLAVE) | "ASYNC_MASTER" |
| flushDiskType | 刷盘方式(SYNC_FLUSH/ASYNC_FLUSH) | "ASYNC_FLUSH" |
| aclEnable | 是否启用ACL | true/false |
| listenPort | Broker服务端口 | *** |
| namesrvAddr | Namesrv地址 | "rocketmq-namesrv:9876" |
| 参数名 | 说明 |
|---|---|
| globalWhiteRemoteAddresses | 全局白名单地址 |
| accounts | 账号列表 |
| accessKey/secretKey | 访问密钥对 |
| admin | 是否为管理员权限 |
| defaultTopicPerm | 默认主题权限(DENY/SUB/PUB/PUB_SUB) |
| defaultGroupPerm | 默认消费组权限(DENY/SUB) |
| topicPerms | 主题权限列表 |
| groupPerms | 消费组权限列表 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 lhstack/rocketmq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: