1. 下载mosquitto镜像
sudo docker pull eclipse-mosquitto
2. 创建MQTT服务器配置文件
配置文件包含config、data、log。
cd /var/local/
mkdir mosquitto/
cd mosquitto/
mkdir config/
mkdir data/
mkdir log/
3. 修改配置文件
cd config/
vi mosquitto.conf
添加内容:
persistence true
listener 1883
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
# 关闭匿名模式
allow_anonymous false
# 指定密码文件
password_file /mosquitto/config/pwfile.conf
加权限:
chmod -R 777 /var/local/mosquitto/
4. 创建并运行容器
映射本机端口和文件路径到容器中:
docker run -it --name=mosquitto --privileged \
-p 1883:1883 -p 9001:9001 \
-v /var/local/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /var/local/mosquitto/data:/mosquitto/data \
-v /var/local/mosquitto/log:/mosquitto/log \
-d eclipse-mosquitto
5. 配置MQTT服务器账号密码
以命令行形式进入容器内部:
docker ps
docker exec -it 72abee6b0c42 sh
生成账号密码:
cd /mosquitto/config/
touch pwfile.conf
chmod -R 755 pwfile.conf
使用mosquitto_passwd命令创建用户admin:
mosquitto_passwd -c pwfile.conf admin
然后输入两次密码即可。
6. 重启容器
exit
docker restart 72abee6b0c42