Ubuntu系统下Docker运行eclipse-mosquitto挂载配置文件报错咨询
报错原因
- 执行
docker run命令的当前工作目录下,不存在名为mosquitto.conf的配置文件 - Docker 卷挂载(
-v参数)的默认逻辑为:若冒号前指定的宿主机路径不存在,会自动将其创建为目录而非文件 - 宿主机自动生成的
mosquitto.conf目录与容器内已有的/mosquitto/config/mosquitto.conf文件类型不匹配,触发类型校验报错
解决步骤
- 先删除Docker自动错误创建的同名目录
sudo rm -rf ./mosquitto.conf
- 在当前工作目录创建合法的mosquitto配置文件
首先创建空配置文件:
touch mosquitto.conf
编辑配置文件写入基础内容(测试场景可直接使用,生产环境请按需调整权限和参数):
listener 1883
allow_anonymous true
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
- 调整运行命令,使用绝对路径指定宿主机配置文件,避免相对路径识别异常:
sudo docker run -it -p 1883:1883 -p 9001:9001 -v $(pwd)/mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
可选调整:如果需要容器后台常驻运行,可将命令中的-it参数替换为-d。
可选挂载方案
如果需要批量管理多个配置文件,可直接挂载整个配置目录,提前创建./config目录并将mosquitto.conf放入其中,运行命令调整为:
sudo docker run -it -p 1883:1883 -p 9001:9001 -v $(pwd)/config:/mosquitto/config eclipse-mosquitto
内容的提问来源于stack exchange,提问作者Jay Hill
相关产品推荐
相关产品推荐

