• 在docker中安装MQTT教程


    网上的好多关于在docker中安装MQTT教程都是错误的不完整的。这篇博客是完整的,实践过的,踩过了很多的坑得来的,欢迎大家享用!

    1、首先在docker中拉取镜像
    docker pull eclipse-mosquitto
    
    • 1
    2、创建配置文件目录
    mkdir -p /docker/mosquitto/config
    mkdir -p /docker/mosquitto/data
    mkdir -p /docker/mosquitto/log
    
    • 1
    • 2
    • 3

    注意:这个地方的目录是宿主机目录

    3、在宿主机创建配置文件
    #存放基本配置
    touch /docker/mosquitto/config/mosquitto.conf
    
    #存放用户密码配置文件
    touch /docker/mosquitto/config/pwfile.conf
    
    #日志目录
    touch /docker/mosquitto/log/mosquitto.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    4、修改配置文件
    vi /docker/mosquitto/config/mosquitto.conf
    
    • 1

    注意:这里的路径是宿主机路径

    具体文件如下:
    这里的所有路径,指向的都是 docker 的路径,不需要修改!!!

    persistence true
    persistence_location /mosquitto/data
    log_dest file /mosquitto/log/mosquitto.log
    
    listener 1883
    #协议模式,可以不指定
    #protocol websockets
    
    # 关闭匿名模式
    allow_anonymous false
    
    #指定密码文件
    password_file /mosquitto/config/pwfile.conf
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    5、修改文件权限
    chmod -R 755 /docker/mosquitto
    chmod -R 777 /docker/mosquitto/log #日志目录要最大权限
    
    • 1
    • 2

    注意:这里的目录是宿主机目录

    6、启动命令
    docker run -it --name=mosquitto --privileged  -p 1883:1883 -p 9100:9001 -v /docker/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf  -v /docker/mosquitto/data:/mosquitto/data -v /docker/mosquitto/log:/mosquitto/log -v /docker/mosquitto/config/pwfile.conf:/mosquitto/config/pwfile.conf -d  eclipse-mosquitto 
    
    • 1
    命令详解:
    1883是应用的端口,9001是管理程序的端口。要将宿主机和容器之间的文件关系进行映射,
    冒号前面的是宿主机配置,冒号后面是容器配置
    比如:-p 1883:1883  前面是宿主机端口 ,后面是容器端口,因此需要在宿主机的防火墙中放开1883这个端口。其他配置都是类似,需要了解。
    
    • 1
    • 2
    • 3
    • 4

    好多网上的启动命令没有这一句话:-v /docker/mosquitto/config/pwfile.conf:/mosquitto/config/pwfile.conf
    就会报找不到文件的错误:Error: Unable to open log file /mosquitto/log/mosquitto.log for writing.
    一定记得把宿主机的文件目录和容器的目录映射起来,这样在启动的时候,就不会报错。

    7、账号密码修改

    进入mosquitto容器

    docker exec -it mosquitto sh
    
    mosquitto_passwd -b /mosquitto/config/pwfile.conf test test2023  #设置账号密码
    
    • 1
    • 2
    • 3

    exit退出容器

    8、重启容器
    docker restart mosquitto
    
    • 1
    9、客户端访问

    下载MQTT.fx进行配置访问,如下图:
    在这里插入图片描述
    以上,就是本次的详细过程!

  • 相关阅读:
    括号有效配对题型问题解法
    rust下载文件
    【贪心算法】原理思想、算法步骤,应用示例(找零问题、活动选择问、霍夫曼编码、最小生成树问题、车辆路径问题)
    win11 搭建Apache webdav 设置用户名密码 加密授权访问以及多个不同目录访问
    VMware使用ubuntu安装增强功能实现自动缩放
    【英语:基础进阶_听口实战运用】D5.听力对话训练
    如何在Ubuntu上安装WordPress
    Stable Diffusion生成图片
    项目国际化的难点痛点是什么
    JSP页面文本展示正常 但定义在java代码中的内容 输出在页面上会变成问号 问题解决
  • 原文地址:https://blog.csdn.net/lbd_123/article/details/132903740