You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署跨多机器EMQX集群的配置问题咨询

跨机器Docker部署EMQX集群解决方案

你碰到的问题本质是Docker默认的bridge网络是单机隔离的,跨机器的容器没法直接互通。不需要完全禁用Docker虚拟网络,通过以下方案就能解决,全程不用在宿主机直接安装EMQX:


一、最直接的方案:用Docker主机网络模式

让容器直接复用宿主机的IP和端口栈,不再使用Docker的虚拟网络,这样跨机器的容器就能通过宿主机IP直接通信,完美解决发现问题。

静态列表法(适合2-3节点的小集群)

假设两台机器IP分别为 192.168.1.100(节点1)和 192.168.1.101(节点2):

启动节点1(机器A):

docker run -d --name emqx-node1 --net=host \
  -e EMQX_NAME=emqx-node1 \
  -e EMQX_HOST=192.168.1.100 \
  -e EMQX_CLUSTER__DISCOVERY_STRATEGY=static \
  -e EMQX_CLUSTER__STATIC__SEEDS=["emqx@192.168.1.100"] \
  emqx/emqx:latest

启动节点2(机器B)并加入集群:

docker run -d --name emqx-node2 --net=host \
  -e EMQX_NAME=emqx-node2 \
  -e EMQX_HOST=192.168.1.101 \
  -e EMQX_CLUSTER__DISCOVERY_STRATEGY=static \
  -e EMQX_CLUSTER__STATIC__SEEDS=["emqx@192.168.1.100"] \
  emqx/emqx:latest

DNS发现法(适合多节点动态扩容)

如果你的环境有DNS服务(比如本地自建DNS或Consul DNS),可以用DNS自动发现节点,同样用host网络模式:

# 替换EMQX_CLUSTER__DNS__NAME为你的集群DNS域名
docker run -d --name emqx-node --net=host \
  -e EMQX_NAME=emqx-node \
  -e EMQX_HOST=$(hostname -I | awk '{print $1}') \
  -e EMQX_CLUSTER__DISCOVERY_STRATEGY=dns \
  -e EMQX_CLUSTER__DNS__NAME=emqx-cluster.local \
  -e EMQX_CLUSTER__DNS__RECORD_TYPE=A \
  emqx/emqx:latest

二、如果不想用host网络:桥接模式下映射必要端口

要是你坚持用Docker的桥接网络,必须手动映射EMQX集群通信的关键端口,让跨机器容器能互相访问:

必须映射的端口

  • 4369:Erlang节点发现端口(epmd服务)
  • 6363:EMQX集群RPC通信端口
  • 以下是客户端和管理用的可选端口,按需映射:
    • 1883:MQTT TCP端口
    • 8083:MQTT WebSocket端口
    • 18083:EMQX Dashboard管理端口

桥接模式启动示例(机器A)

docker run -d --name emqx-node1 \
  -p 1883:1883 -p 8083:8083 -p 18083:18083 \
  -p 4369:4369 -p 6363:6363 \
  -e EMQX_NAME=emqx-node1 \
  -e EMQX_HOST=192.168.1.100 \
  -e EMQX_CLUSTER__DISCOVERY_STRATEGY=static \
  -e EMQX_CLUSTER__STATIC__SEEDS=["emqx@192.168.1.100"] \
  emqx/emqx:latest

机器B启动时,把EMQX_CLUSTER__STATIC__SEEDS改成机器A的IP,同时映射相同端口即可。


三、验证集群是否成功

进入任意一个容器,执行以下命令检查集群状态:

docker exec -it emqx-node1 emqx_ctl cluster status

如果输出里所有节点都显示为running,说明集群构建完成。


内容的提问来源于stack exchange,提问作者Luis Miguel Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:24:57