深入解析:mosquitto求医之路(3):Docker安装也不好使

news/2025/9/24 9:17:39/文章来源:https://www.cnblogs.com/ljbguanli/p/19108559

深入解析:mosquitto求医之路(3):Docker安装也不好使

折腾好久Mosquitto还是起不来,最后逼上梁山只能用docker。
--先卸载
localhost:/var/log/mosquitto # systemctl stop mosquitto
localhost:/var/log/mosquitto # zypper remove mosquitto mosquitto-clients
Reading installed packages...
Resolving package dependencies...
The following 2 packages are going to be REMOVED:
mosquitto mosquitto-clients
2 packages to remove.
Package install size change:
| 0 B required by packages that will be installed
-1017.2 KiB | - 1017.2 KiB released by packages that will be removed

Backend: classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Removed "/etc/systemd/system/multi-user.target.wants/mosquitto.service".
warning: /etc/mosquitto/mosquitto.conf saved as /etc/mosquitto/mosquitto.conf.rpmsave
(1/2) Removing: mosquitto-2.0.21-bp156.2.6.1.x86_64 ....................................................................................................................................................[done]
(2/2) Removing: mosquitto-clients-2.0.21-bp156.2.6.1.x86_64 ............................................................................................................................................[done]
--清理残留的文件和文件夹
localhost:/var/log/mosquitto # rm -rf /etc/mosquitto/
localhost:/var/log/mosquitto # rm -rf /var/log/mosquitto/
localhost:/var/log/mosquitto # rm -rf /var/lib/mosquitto/

--清理用户和用户组mosquitto
localhost:/var/log/mosquitto # userdel -r mosquitto 2>/dev/null || true
localhost:/var/log/mosquitto # getent group mosquitto

--重置服务
localhost:/var/log/mosquitto # rm -f /etc/systemd/system/mosquitto.service
localhost:/var/log/mosquitto # systemctl daemon-reload
localhost:/var/log/mosquitto # systemctl reset-failed mosquitto.service 2>/dev/null || true

--检查残留信息
localhost:/var/log/mosquitto # rpm -qa | grep -i mosquitto
libmosquitto1-2.0.21-bp156.2.6.1.x86_64
localhost:/var/log/mosquitto # sudo rpm -e libmosquitto1-2.0.21-bp156.2.6.1.x86_64
localhost:/var/log/mosquitto # getent group mosquitto
localhost:/var/log/mosquitto # id mosquitto

--安装mosquitto docker
localhost:/home # mkdir mosquitto
localhost:/home # cd mosquitto
localhost:/home/mosquitto # ls
localhost:/home/mosquitto # docker pull eclipse-mosquitto:latest
latest: Pulling from library/eclipse-mosquitto
9824c27679d3: Already exists
8be3a6e695b8: Pull complete
e661fc39aa0a: Pull complete
Digest: sha256:d219d3a72847f3aed6a1d66975972d3b17f86e39e8f6f6b86b4088b879c1a2d6
Status: Downloaded newer image for eclipse-mosquitto:latest
docker.io/library/eclipse-mosquitto:latest
localhost:/home/mosquitto # sudo docker run -d --name mosquitto \
> -p 1883:1883 \
> -p 9001:9001 \
> -v /home/mosquitto/config:/mosquitto/config \
> -v /home/mosquitto/data:/mosquitto/data \
> -v /home/mosquitto/log:/mosquitto/log \
> eclipse-mosquitto
8988291b554430e7c8b94a76c8d4260547b5725172a3f43ed13d2f839fa57af1
虽然成功启动docker,但是再在我的本地目录中不存在配置文件mosquitto.conf。

--转用docker-compose.yaml,先创建文件

version: '3'

services:
mosquitto:
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./config:/mosquitto/config
- ./data:/mosquitto/data
- ./log:/mosquitto/log
- ./var:/var/run/mosquitto
# 首次运行时,从容器内复制默认配置到本地卷
command: sh -c "cp -n /mosquitto/config_orig/* /mosquitto/config/ 2>/dev/null || true && /usr/sbin/mosquitto -c /mosquitto/config/mosquitto.conf"

--启动,还是没有mosquitto.conf文件
应用docker-compose.yml指定也不行,那就只能手动创建mosquitto.conf
让deepseek推荐了一个,拷贝粘贴搞定。AI就是好,这个真的要省很多事。
# ========================
# Mosquitto MQTT Broker 配置
# ========================
# 基础设置
# 允许守护进程模式(在后台运行)
daemon false
# 设置进程ID文件位置
pid_file /var/run/mosquitto.pid
# 监听器设置
# 主MQTT监听器 - 监听所有网络接口的1883端口
listener 1883 0.0.0.0
protocol mqtt

# 可选:WebSocket监听器(如需浏览器客户端连接)
# listener 9001 0.0.0.0
# protocol websockets

# 安全设置
# 允许匿名连接(生产环境中应设置为false并配置密码)
allow_anonymous false

# 密码文件路径(如果启用密码认证)
password_file /mosquitto/config/passwd

# ACL访问控制列表文件路径(如需细粒度权限控制)
# acl_file /mosquitto/config/aclfile

# 持久化设置
# 启用持久化存储(存储订阅信息和保留消息)
persistence true

# 持久化资料存储位置
persistence_location /mosquitto/data/

# 持久化数据库文件
persistence_file mosquitto.db

# 自动持久化间隔(秒)
# autosave_interval 1800

# 日志设置
# 将日志输出到文件
log_dest file /mosquitto/log/mosquitto.log

# 包括所有类型的日志信息
log_type all

# 可选:同时输出到标准输出(便于Docker日志查看)
log_dest stdout

# 连接设置
# 最大同时连接数(默认-1表示无限制)
# max_connections -1

# 消息设置
# 消息最大大小(字节,默认约268MB)
# message_size_limit 0

# 保留消息承受
# retain_available true

# 每个客户端的最大排队消息数
# max_queued_messages 1000

# 桥接设置(如需连接其他MQTT代理)
# connection bridge-to-broker2
# address broker2.example.com:1883
# topic # both 0

启动失败就是--还

localhost:/home/mosquitto # docker-compose up -d
localhost:/home/mosquitto# docker logs mosquitto
1758371638: Error: Unable to open config file /mosquitto/config/mosquitto.conf.
1758371639: Error: Unable to open config file /mosquitto/config/mosquitto.conf.
1758371640: Error: Unable to open config file /mosquitto/config/mosquitto.conf.
1758371641: Error: Unable to open config file /mosquitto/config/mosquitto.conf.

目录权限问题。就是--再改权限:还是起不来,还
localhost:/home/mosquitto # chown -R 1000:1000 /home/mosquitto/config/
localhost:/home/mosquitto # chmod 644 /home/mosquitto/config/mosquitto.conf
还是同样错误。
--注释掉配置文件mosquitto.conf中的
# 允许守护进程模式(在后台运行)
daemon false --注销掉
老错误没有了,新错误出现:
localhost:/home/mosquitto/config # docker logs mosquitto
1758372875: Error: Unable to write pid file.

继续配置文件将 pidfile注释掉,不再报错,可是还是文件访问错误。
localhost:/home/mosquitto/config # docker logs mosquitto
1758374776: mosquitto version 2.0.22 starting
1758374776: Config loaded from /mosquitto/config/mosquitto.conf.
1758374776: Error: Unable to open pwfile "/mosquitto/config/passwd".
还是权限困难。

--Deepseek也弄休克了
问deepseek,翻来覆去就是让改权限,问多了它就习惯性装死,你重开一个话题,它又是一个循环,deepseek这个医生有时候不太行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件体系结构——负载均衡 - 指南

软件体系结构——负载均衡 - 指南2025-09-24 09:16 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

css-定位让盒子居中显示

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">&…

Qwen3-Max 2025年完整发布解析:阿里巴巴最强AI模型深度评测

Qwen3-Max 2025年完整发布解析:阿里巴巴最强AI模型深度评测Qwen3-Max 是阿里巴巴推出的迄今为止规模最大、能力最强的大语言模型。作为 Qwen3 系列的旗舰产品,该模型在2025年1月正式发布,标志着中国AI技术在全球竞争…

地域购物网站wordpress 回复显示不出来

目录 1. 有效的括号 思路&#xff1a; 2.用队列实现栈 思路&#xff1a; 3.用栈实现队列 思路&#xff1a; 4.设计循环队列 思路&#xff1a; 1. 有效的括号 20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 给定一个只包括 (&#xff0c;)&#xff0c;{&…

运城做网站电话网页设计实验报告分析

【物联网阿里云平台开发项目实战|附课件资料】智能硬件开发-数据上云&#xff0c;零基础入门 4G模块连接阿里云教程 MQTT通信协议(mosquitto)在Linux上的环境构建与测试 MQTT通信协议(mosquitto)发布订阅例子C语言实现 MQTT客户端软件(MQTT.fx)的使用详解 各类MQTT代理服务器特…

企业网站建设公司网络服务上海知名的网站建设

这是今天和校招新同事交流时的总结&#xff0c;希望校招新同事能够回顾&#xff0c;也能够写出自己的总结。 一、什么是代码高手&#xff1f;你怎么证明自己是代码高手&#xff1f; 知道许多代码技巧、JS炫彩技巧的人大有人在。你知道多少个.net函数&#xff0c;这一点都没有意…

国外家居设计网站客户管理系统免费

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring,SpringMVC,MyBatis的高校大…

网站分类查询黄石seo

1. 涉及技术&#xff1a;Winservice: 用system身份后台跑&#xff1b; Quartz&#xff1a;定时任务&#xff1b; SVN 2. 思路&#xff1a;Quartz定时调用cmd 程序,执行SVN update 命令,整个程序寄宿在Winservice3. 步骤&#xff1a;1&#xff09;service 用local system账户安…

网站开发 创造收益网页升级访问紧急通通知

第一步&#xff1a; File -> Reverse Engineer -> Database 第二步 &#xff1a; Using Script Files -> Add Files

应用最广网站建设技术彩妆网站模板

1.4 数据存储 1、Redis 的数据过期策略是什么? Redis的数据过期策略包括两种机制:被动删除和主动删除。 被动删除: 当某个键被访问时,如果发现这个键已经过期,Redis会立即删除这个键。这意味着如果一个过期的键从未被访问,它就不会被自动删除。这是一种惰性删除策略。主…

三门峡建设银行网站邢台网站建设讯息

题目大概意思是剔除nums数组中出现的所有val值。可以用快慢双指针法来做。 快的指针在前面遍历找值不为val的元素的下标&#xff0c;慢的负责接收值不为val的元素&#xff0c;并及时更新数组。 class Solution {public int removeElement(int[] nums, int val) {//快慢指针法in…

在线教育软件开发的全流程解析与优化方案

随着信息技术的不断进步,在线教育逐渐成为教育行业的重要发展方向。山东布谷鸟网络科技有限公司作为的软件开发企业,深耕教育行业多年,专注于K12教培教育系统的研发与优化,致力于为教育机构提供高质量、稳定可靠的…

css-伪元素清除浮动

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">&…

建设领域信用系统网站邯郸电商设计

1.直接new出来的对象添加事务不起作用&#xff0c;因为只有spring定义的bean才接受事务。 2.由于mysql的引擎用Myisam不支持事务&#xff0c;所以如果使用mysql的myisam引擎的话&#xff0c;事务不起作用。 3.如果Transaction注解到非public方法上&#xff0c;事务不起作用&…

网站规划的要素不包括西华县建设局网站

1 什么是迭代器&#xff0c;生成器&#xff0c;装饰器 2 django的信号用过吗&#xff1f;如何用&#xff0c;干过什么 3 什么是深拷贝&#xff0c;什么是浅拷贝&#xff0c;如何使用 3.1 浅拷贝 3.2 深拷贝 3.3 扩展(slice操作符和list构造函数) 1 什么是迭代器&#xff0c;生成…

天津武清做网站网站空间如何申请

一、SNAT ①SNAT 应用环境: 局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) ②SNAT原理: 源地址转换&#xff0c;根据指定条件修改数据包的源IP地址&#xff0c;通常被叫做源映射 数据包从内网发送到公网时&#xff0c;SNAT会把数据包的源IP由…

桂电做网站的毕设容易过嘛wordpress 密码重置

在php中&#xff0c;SQL查询数据库得到的是多行多列的数据&#xff0c;如何将查询结果转为二维数组&#xff0c;我的目的是把多行查询结果按行输出&#xff0c;有没有什么方法&#xff0c;求详细代码示例查询结果示例&#xff1a;reserv_idnametyper...在php中&#xff0c;SQL查…

网站建设怎样宣传比较好wordpress 移除 新闻

1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代码封装成多个代码片段(即函数)&#xff0c;有助于提高代码可读性和可维护性。在 Go 语言中&#xff0c;函数可以分为两种&#xff1a;带有名字的普通函数没有名字的匿名函数由于 Go…

成都 php 网站个人网页设计与制作教程

数字经济专家高泽龙受聘担任工信部元宇宙标准化委员会委员&#xff0c;出席工作组成立大会暨第一次全体委员会议。 第一届元宇宙国标、团标以及标委会工作组会议顺利召开&#xff01; 同时&#xff0c;正式成为工信部中国人工智能产业发展联盟科技伦理工作组成员&#xff01;