参考: https://blog.csdn.net/weixin_43790195/article/details/104633271

docker-compose-mqtt.yml

version: "3.7" 
services:
    mqtt:
        image: eclipse-mosquitto:2 
        container_name: mqtt
        privileged: true 
        ports: 
            - 1883:1883
            - 9001:9001
        volumes:
            - ./config:/mosquitto/config
            - ./data:/mosquitto/data
            - ./log:/mosquitto/log

config文件夹中放
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

docker-compose -f docker-compose-mqtt.yml up -d

此时连接时没有密码的

密码配置 分三步

  1. 修改配置文件
# 关闭匿名模式
allow_anonymous true
# 指定密码文件
password_file /mosquitto/config/pwfile.conf
  1. 进入docker内部生成密码
进入容器内部
 docker exec -it mqtt sh
 
 生成文件 创建密码
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
# 使用mosquitto_passwd命令创建用户,admin是用户名,admin_123是密码
mosquitto_passwd -b /mosquitto/config/pwfile.conf admin admin_123
退出 
exit 或者 Ctrl + D
  1. 重启容器
docker restart mqtt
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐