参考文献:
https://blog.csdn.net/weixin_44519064/article/details/124621159
https://www.cnblogs.com/sjie/p/13189215.html
拉取镜像
docker pull eclipse-mosquitto
![](https://i-blog.csdnimg.cn/blog_migrate/e4203d37d25fe5e8f2455a6fbb1f996d.png)
创建目录如下:
mkdir -p /usr/local/docker/mosquitto/config
mkdir -p /usr/local/docker/mosquitto/data
mkdir -p /usr/local/docker/mosquitto/log
![](https://i-blog.csdnimg.cn/blog_migrate/113713866c06611e38e837d15a953a24.png)
创建目录即可,文件是后面加的。
加入配置文件:
vi /mosquitto/config/mosquitto.conf
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
port 1883
listener 9001
protocol websockets
# 关闭匿名模式
allow_anonymous false
# 指定密码文件
password_file /mosquitto/config/pwfile.conf
#备注:这里千万注意路径,指向的是 docker 的路径!!!(直接复制我的内容即可)
修改目录权限
chmod -R 755 /home/dxy/mosquitto
chmod -R 777 /home/dxy/mosquitto/log
创建并启动容器
sudo docker run -it --name=mosquitto --privileged \
-p 1883:1883 -p 9001:9001 \
-v /usr/local/docker/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /usr/local/docker/mosquitto/data:/mosquitto/data \
-v /usr/local/docker/mosquitto/log:/mosquitto/log \
-d eclipse-mosquitto
-d:在后台运行容器
–name:容器名
-v:将容器内的目录映射到容器外
-p:端口映射
设置密码
进入容器
docker exec -it mosquitto sh
创建并修改密码文件权限
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
使用 mosquitto_passwd 命令创建用户
mosquitto_passwd -b /mosquitto/config/pwfile.conf username(此处为用户名) password(此处为密码)
重启容器
docker restart mosquitto
测试验证
![](https://i-blog.csdnimg.cn/blog_migrate/1d162d41a36139bffd4de68b8d021c71.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1247b7832810839b31759f26beba7edd.png)
不使用docker安装,添加 mosquitto-auth-plug管理,参考: