docker run 部署emqx集群
时间: 2023-07-08 18:48:15 浏览: 154
要在 Docker 中部署 EMQ X 集群,可以使用 `docker run` 命令和 `emqx` 镜像。以下是一个简单的示例,演示如何使用 `docker run` 命令在单个节点上运行 EMQ X:
```
docker run -d --name emqx \
-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" \
emqx/emqx:latest
```
上面的命令会在后台运行一个名为 `emqx` 的容器,并将 EMQ X 的 MQTT、WebSocket 和 MQTT over TLS 端口映射到主机的对应端口。我们还使用 `-e` 参数来定义一些环境变量,例如监听地址、加载的插件等。
要在 Docker 中部署 EMQ X 集群,需要使用多个 `docker run` 命令,并在每个容器中配置不同的节点名称、集群名称和节点地址等。以下是一个简单的示例,演示如何使用 `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" \
-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" \
-e EMQX_NODE__NAME="emqx2" \
-e EMQX_NODE__MACHINE="emqx2" \
emqx/emqx:latest
```
上面的命令会在两个容器中分别启动 EMQ X 节点,并将两个节点加入到同一个集群中。我们在每个容器中使用不同的节点名称、集群名称和节点地址等参数,以确保 EMQ X 能够正确地运行和通信。
阅读全文