docker安装emqx并进行初始化
时间: 2023-06-29 20:11:58 浏览: 227
以下是在 Docker 上安装 EMQ X 并进行初始化的步骤:
1. 首先安装 Docker,可以参考 Docker 官方文档进行安装。
2. 从 Docker Hub 上拉取 EMQ X 镜像,并运行容器。运行以下命令:
```
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 -e EMQX_LOADED_PLUGINS="emqx_management,emqx_recon,emqx_retainer,emqx_dashboard" emqx/emqx:latest
```
这里我们指定容器名称为 emqx,将容器内部的端口映射到宿主机上,并且指定了 EMQ X 需要加载的插件。
3. 等待 EMQ X 启动完成,可以通过以下命令查看容器日志:
```
docker logs -f emqx
```
如果看到类似以下日志,则表示 EMQ X 已经启动成功:
```
2021-10-12 02:57:45.998 [info] Application emqx started on node emqx@172.17.0.2
```
4. 打开浏览器,访问 http://localhost:18083,进入 EMQ X Dashboard 界面。默认的用户名和密码均为 admin。
5. 在 EMQ X Dashboard 界面中,可以进行初始化配置。例如,可以添加一个 MQTT 用户,在「Access Control」->「User & ACL」中点击「Add」按钮,输入用户名和密码,并勾选「Subscribe」和「Publish」权限。然后在「Access Control」->「Rule & ACL」中点击「Add」按钮,输入 Topic 和 ACL 规则,例如可以输入以下规则:
```
Rule: clientid='*', access='subscribe', topic='#'
ACL: allow
```
这里表示所有的 MQTT 客户端都可以订阅任意 Topic。
6. 最后,在应用程序中连接到 EMQ X。可以使用任意支持 MQTT 协议的客户端库来连接 EMQ X。例如,使用 Eclipse Paho MQTT 客户端库来连接 EMQ X,可以使用以下代码:
```
import org.eclipse.paho.client.mqttv3.*;
public class MqttExample {
public static void main(String[] args) throws Exception {
String broker = "tcp://localhost:1883";
String clientId = "example-client";
String username = "admin";
String password = "public";
MqttClient mqttClient = new MqttClient(broker, clientId);
mqttClient.connect();
mqttClient.subscribe("#", 0);
mqttClient.publish("test", "Hello, World".getBytes(), 0, false);
mqttClient.disconnect();
}
}
```
运行以上代码,就可以连接到 EMQ X,并订阅任意 Topic 和发布消息。
阅读全文