• 在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进行配置访问,如下图:
    在这里插入图片描述
    以上,就是本次的详细过程!

  • 相关阅读:
    七夕来临,程序员该如何花式表白?html+css实现简单七夕表白
    SpringBoot集成自然语言处理hanlp工具包
    shiro721反序列化漏洞(CVE-2019-12422)原理与漏洞复现和利用(保姆级的详细教程)
    2022年京东双11食品饮料品类数据回顾
    如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2
    dubbo从入门到精通
    微信小程序--WXML模板(页面逻辑)-2
    Vue-条件渲染和循环渲染
    Python3语法总结-数据转换②
    工控安全方案分析
  • 原文地址:https://blog.csdn.net/lbd_123/article/details/132903740