docker 安装mosquitto
·
本来目标是用官方文档编译部署,各种依赖缺失,最后deepseek建议我用docker安装。!!!!
1、windows本地安装
-
获取镜像
docker pull eclipse-mosquitto本地使用梯子
-
运行镜像
本地配置账号密码,有文件权限问题,故采用无密码模式
docker run -d --name mosquitto -p 1883:1883 -v D:/docker-data/mosquitto/data:/mosquitto/data -v D:/docker-data/mosquitto/log:/mosquitto/log --restart=always eclipse-mosquitto
2、服务器安装
-
在windows本地导出镜像
docker save -o mosquitto.tar eclipse-mosquitto -
在服务器上导入镜像
docker load -i mosquitto.tar -
编写 Mosquitto 配置文件
# 创建配置目录
mkdir -p /opt/apps/mosquitto/{config,data,log}
# 创建配置文件
cat > /opt/apps/mosquitto/config/mosquitto.conf << 'EOF'
# 基本监听端口
listener 1883 0.0.0.0
listener 9001 0.0.0.0
protocol websockets
# 安全设置 - 禁止匿名访问
allow_anonymous false
# 密码文件
password_file /mosquitto/config/passwd
# 持久化
persistence true
persistence_location /mosquitto/data/
# 日志
log_dest file /mosquitto/log/mosquitto.log
log_timestamp true
# 性能优化
max_connections -1
max_queued_messages 1000
autosave_interval 900
EOF
-
启动 Mosquitto 容器
docker run -d --name mosquitto -p 10004:1883 -v /opt/apps/mosquitto/config:/mosquitto/config -v /opt/apps/mosquitto/data:/mosquitto/data -v /opt/apps/mosquitto/log:/mosquitto/log --restart=always eclipse-mosquitto
-
启用密码认证
# 进入容器执行密码生成命令(-c 表示创建新文件,仅第一次使用)
docker exec -it mosquitto mosquitto_passwd -c /mosquitto/conf/passwd mqtt_user
# 按提示输入密码(如 123456),重复确认
-
MQTT 服务测试验证
# 非加密端口订阅(带密码)
docker exec -it mosquitto mosquitto_sub -h localhost -p 1883 -t "test/topic" -u mqtt_user -P 123456
# 非加密端口发布消息(带密码)
docker exec -it mosquitto mosquitto_pub -h localhost -p 1883 -t "test/topic" -u mqtt_user -P 123456 -m "Hello MQTT from Docker!"
验证的时候应该故意测试错误密码常见是否正常
-
可能用到的常见命令
删除
docker rm mosquitto
启动
docker start mosquitto
停止
docker stop mosquitto
查看日志
docker logs -f mosquitto
更多推荐

所有评论(0)