docker run 部署emqx集群3节点
时间: 2023-07-18 08:41:32 浏览: 170
要在 Docker 中部署 EMQ X 集群,可以使用 `docker run` 命令和 `emqx` 镜像。以下是一个简单的示例,演示如何使用 `docker run` 命令在三个节点上运行 EMQ X:
```
# 启动第一个节点
docker run -d --name emqx1 \
-p 1883:1883 -p 8083:8083 -p 8883:8883 \
-e EMQX_LISTENER__TCP__EXTERNAL=0.0.0.0:1883 \
-e EMQX_LOADED_PLUGINS="emqx_recon,emqx_retainer,emqx_management" \
-e EMQX_CLUSTER__DISCOVERY="static" \
-e EMQX_CLUSTER__STATIC__SEEDS="emqx2@172.17.0.3,emqx3@172.17.0.4" \
-e EMQX_NODE__NAME="emqx1" \
-e EMQX_NODE__MACHINE="emqx1" \
emqx/emqx:latest
# 启动第二个节点
docker run -d --name emqx2 \
-p 1884:1883 -p 8084:8083 -p 8884:8883 \
-e EMQX_LISTENER__TCP__EXTERNAL=0.0.0.0:1883 \
-e EMQX_LOADED_PLUGINS="emqx_recon,emqx_retainer,emqx_management" \
-e EMQX_CLUSTER__DISCOVERY="static" \
-e EMQX_CLUSTER__STATIC__SEEDS="emqx1@172.17.0.2,emqx3@172.17.0.4" \
-e EMQX_NODE__NAME="emqx2" \
-e EMQX_NODE__MACHINE="emqx2" \
emqx/emqx:latest
# 启动第三个节点
docker run -d --name emqx3 \
-p 1885:1883 -p 8085:8083 -p 8885:8883 \
-e EMQX_LISTENER__TCP__EXTERNAL=0.0.0.0:1883 \
-e EMQX_LOADED_PLUGINS="emqx_recon,emqx_retainer,emqx_management" \
-e EMQX_CLUSTER__DISCOVERY="static" \
-e EMQX_CLUSTER__STATIC__SEEDS="emqx1@172.17.0.2,emqx2@172.17.0.3" \
-e EMQX_NODE__NAME="emqx3" \
-e EMQX_NODE__MACHINE="emqx3" \
emqx/emqx:latest
```
上面的命令会在三个容器中分别启动 EMQ X 节点,并将三个节点加入到同一个集群中。我们在每个容器中使用不同的节点名称、集群名称和节点地址等参数,以确保 EMQ X 能够正确地运行和通信。其中每个节点的 `EMQX_CLUSTER__STATIC__SEEDS` 参数需要设置为其他两个节点的地址,这样才能够互相发现和加入到集群中。
阅读全文