docker-mqtt服务EMQ部署

版本:5.0.26

1、拉取emq

  • docker pull emqx/emqx:5.0.26

拉取emq镜像

占用端口:

1883 MQTT/TCP 协议端口

11883 MQTT/TCP 协议内部端口,仅用于本机客户端连接

8883 MQTT/SSL 协议端口

8081 management/HTTP/S 协议端口

8083 MQTT/WS 协议端口

8084 MQTT/WSS 协议端口

2、运行emq

  • docker run --name emqx -u root \
    -p 1883:1883 -p 8083:8083 \
    -p 8084:8081 -p 8085:8084 \
    -p 18083:18083 \
    -v /usr/local/mqtt/emq/data:/opt/emqx/data \
    -v /usr/local/mqtt/emq/log:/opt/emqx/log \
    -v /usr/local/mqtt/emq/plugins:/opt/emqx/plugins \
    -v /usr/local/mqtt/emq/etc:/opt/emqx/etc \
    -e TZ="Asia/Shanghai" \
     --restart=always \
    -d emqx/emqx:5.0.26

    3、拉取配置文件

*注意正常情况下,本地是没有这些配置需要先从容器拷贝出来,执行会报错误(ERROR: emqx.conf is not found in /opt/emqx/etc

首先,先随便执行一个新容器如下:

docker run --name emqx_test -u root -d emqx/emqx:5.0.26 

然后把内容拷贝到宿主机也就是本地

cd /usr/local/mqtt/emqx

docker cp emqx_test:/opt/emqx/plugins ./
docker cp emqx_test:/opt/emqx/log ./
docker cp emqx_test:/opt/emqx/data ./
docker cp emqx_test:/opt/emqx/etc ./

这样在/usr/local/mqtt/emqx下面就包含了默认的配置了

plugins 、log、data、etc

然后再清理掉emqx_test 容器

docker stop emqx_test
docker rm emqx_test

4、执行成功

docker  ps

5、访问

http://ip:18083/

默认账号:admin

默认密码:public

默认第一次修改密码,不想修改的先跳过

修改为中文页面

点击应用就行了

6、配置数据库认证

6.1查询docker的ip

在宿主机器上面查询docker地址

Ifconfig

查询出来ip为128.128.0.1

6.2 配置数据库

网页登录emq

客户端认证

创建

选择第一个

选择mysql

填写之前查询到的ip

128.128.0.1

这里我的数据库端口为3306,所以这里填写

首先需要在自己的数据库创建相应的表,如下:

创建mqtt_user表

CREATE TABLE `mqtt_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `password_hash` varchar(100) DEFAULT NULL,
  `salt` varchar(35) DEFAULT NULL,
  `is_superuser` tinyint(1) DEFAULT '0',
  `created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

填写数据库的连接信息

填写上述数据,点击创建

然后可以在数据库添加账号,然后客户端通过账号密码认证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值