首先确保你已经安装了docker
1、docker拉取mosquitto镜像
docker pull eclipse-mosquitto
2、查看镜像
docker images
3、建立相关目录
mkdir -p /mosquitto/config
mkdir -p /mosquitto/data
mkdir -p /mosquitto/log
4、在相关目录下建立配置文件
vi /mosquitto/config/mosquitto.conf
并在配置文件中写入如下内容
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
listener 1883
5、为目录授权
chmod -R 755 /mosquitto
chmod -R 777 /mosquitto/log #日志目录要最大权限
6、执行如下命令启动mosquitto
docker run -it --name=mosquitto --privileged
-p 1883:1883 -p 9001:9001
-v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
-v /mosquitto/data:/mosquitto/data
-v /mosquitto/log:/mosquitto/log
-d eclipse-mosquitto
7、配置权限
在/mosquitto/config/mosquitto.conf文件下添加:
allow_anonymous false #关闭匿名模式
password_file /mosquitto/config/pwfile.conf #指定密码文件
8、进入容器
docker exec -it CONTAINER ID (容器Id) sh
9、生成密码
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
使用mosquitto_passwd命令创建用户,第一个admin是用户名,第二个mosquitto是密码。
mosquitto_passwd -b /mosquitto/config/pwfile.conf admin mosquitto
10、重启mqtt服务
docker restart CONTAINER ID
11、测试正常连接