docker安装emqx

一、拉取镜像

docker pull emqx/emqx:latest
# 也可以拉去指定版本
docker pull emqx/emqx:v4.0.0

二、启动

docker run -d --name emqx --network mynet --network-alias emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:latest

# 避免跟rabbitmq的1883冲突
docker run -d --name emqx --network mynet --network-alias emqx -p 1884:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:latest

端口说明
1883:MQTT 协议端口

8883:MQTT/SSL 端口

8083:MQTT/WebSocket 端口

8080:HTTP API 端口

18083:Dashboard 管理控制台端口

三、在服务器上创建emqx挂载目录

mkdir -p /usr/local/emqx/{
    
    etc,lib,data,log}

四、将临时EMQX容器的文件拷贝到服务器

docker cp emqx:/opt/emqx/etc /usr/local/emqx
docker cp emqx:/opt/emqx/lib /usr/local/emqx
docker cp emqx:/opt/emqx/data /usr/local/emqx
docker cp emqx:/opt/emqx/log /usr/local/emqx

五、修改挂载目录权限

chown -R 1000:1000 /usr/local/emqx/
chmod -R 755 /usr/local/emqx/

六、删除当前临时emqx容器

docker stop emqx
docker rm emqx

七、重新启动一个EMQX(挂载目录到服务器)

docker run -d \
--name emqx \
--network mynet \
--network-alias emqx \
-p 1883:1883 \
-p 8883:8883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8081:8081 \
-p 18083:18083 \
-v /usr/local/emqx/etc:/opt/emqx/etc \
-v /usr/local/emqx/lib:/opt/emqx/lib \
-v /usr/local/emqx/data:/opt/emqx/data \
-v /usr/local/emqx/log:/opt/emqx/log \
emqx/emqx:latest

八、访问emqt的web管理页面

http://127.0.0.1:18083
#账号: admin
#密码: public
admin public为默认用户名密码,也可以提前修改/usr/local/emqx/etc/plugins/emqx_auth_username.conf文件,再启动容器

在这里插入图片描述

九、查看日志

docker logs emqx
docker logs -f emqx

十、配置

1、进入控制台

docker exec -it emqx /bin/bash

emqx_ctl plugins reload emqx_web_hook

2、创建API访问用户

方法一:非docker安装
<emqx安装目录> /emqx/bin/emqx_ctl mgmt insert iothub magueIotHub
方法二:需要先进入控制台

# 创建用户
emqx_ctl mgmt insert jrsoft-iot jrsoft-iot
AppSecret: MzA0NzIzMTU5Njg2MzA5NjE0NjI2MDY0MzcyODM1Mjg3MDE

  • 如果提示用户已经存在可以在如下页面,删除该用户
    在这里插入图片描述

3、不允许匿名登录

默认是允许匿名
修改/etc/emqx/emqx.conf
在docker中则修改/usr/local/emqx/etc/emqx.conf

allow_anonymous = false:

4、使插件生效

cd /usr/lib/emqx
emqx_ctl plugins reload emqx_auth_mongo

5、配置系统消息订阅权限

修改/etc/emqx/acl.conf
在docker中则修改/usr/local/emqx/etc/acl.conf
在这里插入图片描述

6、开启webhook

修改/etc/emqx/plugins/emqx_web_hook.conf
在docker中则修改/usr/local/emqx/plugins/emqx_web_hook.conf

web.hook.url = http://192.168.0.8:8080/emqx_web_hook
# 或者
web.hook.url = http://192.168.0.55:7004/emqx/hook

使插件生效

emqx_ctl plugins reload emqx_web_hook

在这里插入图片描述

7、开hook规则

还是修改emqx_web_hook.conf
在这里插入图片描述
使插件生效

emqx_ctl plugins reload emqx_web_hook

猜你喜欢

转载自blog.csdn.net/Blueeyedboy521/article/details/124630944