使用openwrt的docker容器来运行mqtt服务
putty登录主机
拉取镜像
1 | docker pull eclipse-mosquitto |
新建配置文件夹
下面的文件夹路径根据你自己设备的实际情况做相应的更改
1 | mkdir -p /mnt/mmcblk2p4/docker/mqtt/config |
新建配置文件
1 | nano /mnt/mmcblk2p4/docker/mqtt/config/mosquitto.conf |
复制下面的内容,然后保存。
1 | persistence true |
文件夹赋予权限
1 | chmod -R 755 /mnt/mmcblk2p4/docker/mqtt |
运行容器
1 | docker run -it --name=mosquitto --privileged -p 1883:1883 -p 9001:9001 -v /mnt/mmcblk2p4/docker/mqtt/config/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mnt/mmcblk2p4/docker/mqtt/data:/mosquitto/data -v /mnt/mmcblk2p4/docker/mqtt/log:/mosquitto/log -d eclipse-mosquitto |
目前可以使用IP加1883端口直接连接mqtt服务器,无需使用用户名密码登录。
如果需要设置用户名密码,则需要在mosquitto.conf文件中将allow_anonymous true字段改成fasle,然后声明密码文件保存路径。详细配置参考下面:
1 | persistence true |
找到容器的id并将下面命令行中的id字段进行替换
1 | docker ps |
进入到容器中
1 | docker exec -it id sh |
运行下面的命令创建用户和密码。
1 | mosquitto_passwd /mosquitto/config/pwfile.conf mqtt |
完成之后ctrl+p ctrl+q保存退出。
重启docker容器
1 | docker restart id |
之后就可以使用设置的用户名和密码连接mqtt服务器了。