
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
获取帮助: 联系我们
提交问题: https://github.com/hivemq/hivemq-docker-images/issues
维护方: HiveMQ
Dockerfile: https://github.com/hivemq/hivemq-docker-images
HiveMQ是一款为关键企业场景设计的MQTT代理。它核心兼容MQTT 3.1和3.1.1协议,并通过额外特性脱颖而出,包括卓越性能和创新功能,帮助依赖MQTT的企业提升业务效率。更多特性请查看功能页面。
| 标签 | 含义 |
|---|---|
| latest | 指向HiveMQ基础镜像的最新版本 |
| dns-latest | 指向HiveMQ DNS发现镜像的最新版本 |
<version> | 提供指定版本代理的基础镜像(如3.4.1) |
dns-<version> | 基于指定版本基础镜像的DNS发现镜像 |
要启动单个HiveMQ实例并开放MQTT端口和Web UI,请先安装Docker,然后运行以下命令:
docker run -p 8080:8080 -p 1883:1883 hivemq/hivemq3
现在您已拥有本地Docker化HiveMQ,可以通过1883端口连接代理或8080端口访问Web UI。
运行HiveMQ集群推荐使用DNS发现镜像,该镜像内置https://github.com/hivemq/hivemq-dns-cluster-discovery-plugin%EF%BC%8C%E6%94%AF%E6%8C%81%E4%BB%BB%E4%BD%95%E6%8F%90%E4%BE%9B%E8%BD%AE%E8%AF%A2A%E8%AE%B0%E5%BD%95%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E7%9A%84%E5%AE%B9%E5%99%A8%E7%BC%96%E6%8E%92%E5%BC%95%E6%93%8E%E3%80%82%E4%BB%A5%E4%B8%8B%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8F%AF%E7%94%A8%E4%BA%8E%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%91%E7%8E%B0%E5%92%8C%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE%EF%BC%9A
| 环境变量 | 默认值 | 含义 |
|---|---|---|
| HIVEMQ_DNS_DISCOVERY_ADDRESS | - | 用于集群发现的A记录地址 |
| HIVEMQ_DNS_DISCOVERY_INTERVAL | 31 | 搜索新节点的时间间隔(秒) |
| HIVEMQ_DNS_DISCOVERY_TIMEOUT | 30 | DNS解析超时时间(秒) |
| HIVEMQ_CLUSTER_PORT | 8000 | 集群传输端口 |
| HIVEMQ_LICENSE | - | base64编码的许可证文件 |
| HIVEMQ_BIND_ADDRESS | - | 集群传输绑定地址(默认自动解析主机名) |
| HIVEMQ_WEB_UI_USER | admin | Web UI登录用户名 |
| HIVEMQ_WEB_UI_PASSWORD | adminhivemq的SHA256哈希 | Web UI认证密码哈希 |
使用Docker Swarm可在本地启动HiveMQ集群(注意:生产环境不推荐使用Docker Swarm):
docker swarm init
docker network create -d overlay --attachable myNetwork
docker service create \ --replicas 3 --network myNetwork \ --env HIVEMQ_DNS_DISCOVERY_ADDRESS=tasks.hivemq \ --publish target=1883,published=1883 \ --publish target=8080,published=8080 \ -p 8000:8000/udp \ --name hivemq \ hivemq/hivemq3:dns-latest
这将创建3节点集群,MQTT端口和Web UI已转发到主机网络。更多信息请查看https://github.com/hivemq/hivemq-docker-images#managing-the-cluster%E3%80%82
生产环境推荐使用DNS发现镜像结合Kubernetes。Kubernetes需配置合适的部署以利用DNS发现,无头服务将提供代理的DNS记录用于发现。以下是3节点HiveMQ集群的Kubernetes配置示例(需根据命名空间和域名替换HIVEMQ_DNS_DISCOVERY_ADDRESS):
yamlapiVersion: v1 kind: ReplicationController metadata: name: hivemq-replica spec: replicas: 3 selector: app: hivemq-cluster1 template: metadata: name: hivemq-cluster1 labels: app: hivemq-cluster1 spec: containers: - name: hivemq-pods image: hivemq/hivemq3:dns-latest ports: - containerPort: 8080 protocol: TCP name: web-ui - containerPort: 1883 protocol: TCP name: mqtt env: - name: HIVEMQ_DNS_DISCOVERY_ADDRESS value: "hivemq-discovery.default.svc.cluster.local." - name: HIVEMQ_DNS_DISCOVERY_TIMEOUT value: "20" - name: HIVEMQ_DNS_DISCOVERY_INTERVAL value: "21" readinessProbe: tcpSocket: port: 1883 initialDelaySeconds: 30 periodSeconds: 60 failureThreshold: 60 livenessProbe: tcpSocket: port: 1883 initialDelaySeconds: 30 periodSeconds: 60 failureThreshold: 60 --- kind: Service apiVersion: v1 metadata: name: hivemq-discovery annotations: service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" spec: selector: app: hivemq-cluster1 ports: - protocol: TCP port: 1883 targetPort: 1883 clusterIP: None
要访问Kubernetes集群上的HiveMQ Web UI,需创建暴露Web UI的服务。使用以下YAML定义(保存为web.yaml):
yamlkind: Service apiVersion: v1 metadata: name: hivemq-web-ui spec: selector: app: hivemq-cluster1 ports: - protocol: TCP port: 8080 targetPort: 8080 sessionAffinity: ClientIP type: LoadBalancer
通过kubectl create -f web.yaml创建服务(注意:根据Kubernetes环境提供商,负载均衡可能需要额外配置)。
要允许外部客户端访问Kubernetes集群的MQTT端口,需创建负载均衡服务暴露MQTT端口。使用以下YAML定义(保存为mqtt.yaml):
yamlkind: Service apiVersion: v1 metadata: name: hivemq-mqtt annotations: service.spec.externalTrafficPolicy: Local spec: selector: app: hivemq-cluster1 ports: - protocol: TCP port: 1883 targetPort: 1883 type: LoadBalancer
通过kubectl create -f mqtt.yaml创建服务。
环境变量HIVEMQ_WEB_UI_PASSWORD允许通过SHA256哈希设置Web UI密码,HIVEMQ_WEB_UI_USER可配置用户名。更多生成密码哈希的信息请查看生成SHA256密码。
使用许可证需先将其编码为字符串:运行cat license.lic | base64(替换license.lic为您的许可证路径),将结果设置为容器的HIVEMQ_LICENSE环境变量。
默认镜像会使用容器${HOSTNAME}设置绑定地址以确保集群连接正确。可通过设置HIVEMQ_BIND_ADDRESS环境变量覆盖此行为,代理将使用指定值作为绑定地址。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务