Docker 容器部署 EMQX|MQTT 消息代理服务安装与配置教程

Docker EMQX 部署和配置指南


文章目录

  • [Docker EMQX 部署和配置指南](#Docker EMQX 部署和配置指南)
  • [一、Docker EMQX部署](#一、Docker EMQX部署)
    • [1.1 构建docker-compose.yml](#1.1 构建docker-compose.yml)
  • 二、参考文档
  • 三、可视化管理后台

一、Docker EMQX部署

1.1 构建docker-compose.yml

1、在项目目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容:

yaml 复制代码
version: '3'
services:
  emqx:
    image: emqx/emqx:4.4.0
    container_name: emqx
    environment:
      - TZ=Asia/Shanghai
      - EMQX_NODE_NAME=emqx@127.0.0.1
      - EMQX_HOST=127.0.0.1
      - EMQX_NAME=emqx_local
    ports:
      - 1883:1883
      - 8083:8083
      - 8084:8084
      - 8883:8883
      - 18083:18083
    volumes:
      - /Users/xiaozhou/DockerContainerData/emqx/etc:/opt/emqx/etc
      - /Users/xiaozhou/DockerContainerData/emqx/data:/opt/emqx/data
      - /Users/xiaozhou/DockerContainerData/emqx/log:/opt/emqx/log

注释版

yaml 复制代码
# docker‑compose 配置文件,用于一键编排启动 EMQX 4.4.0 MQTT消息服务器
version: '3'   # compose文件版本,version3适配Docker1.13.0及以上版本
services:      # 定义需要管理的服务列表
  emqx:        # 服务名称,compose内部标识该服务为emqx
    image: emqx/emqx:4.4.0   # 使用的镜像:emqx4.4.0版本MQTT服务镜像
    container_name: emqx     # 指定容器名称,不指定则compose自动生成名字
    environment:             # 设置容器内环境变量,用于配置emqx运行参数
      - TZ=Asia/Shanghai     # 设置容器时区为上海,解决日志、系统时间时差问题
      - EMQX_NODE_NAME=emqx@127.0.0.1  # EMQX节点名称,集群模式下节点唯一标识,单机使用配置本机地址
      - EMQX_HOST=127.0.0.1            # EMQX服务绑定监听地址
      - EMQX_NAME=emqx_local           # EMQX实例别名标识
    ports:                   # 端口映射:宿主机端口:容器内部端口
      - 1883:1883            # MQTT TCP标准端口,设备普通mqtt连接
      - 8083:8083            # WebSocket MQTT 明文端口,浏览器JS连接mqtt
      - 8084:8084            # WebSocket MQTT SSL加密端口
      - 8883:8883            # MQTT TLS/SSL加密通信端口
      - 18083:18083          # EMQX Dashboard可视化管理后台,浏览器访问: http://宿主机IP:18083
    volumes:                 # 数据卷挂载,宿主机目录映射到容器内部,持久化配置、数据、日志;容器删除数据不会丢失
      - /Users/xiaozhou/DockerContainerData/emqx/etc:/opt/emqx/etc   # 挂载emqx配置目录,可直接在宿主机修改配置文件
      - /Users/xiaozhou/DockerContainerData/emqx/data:/opt/emqx/data # 挂载数据目录,存储客户端会话、订阅、持久化消息数据
      - /Users/xiaozhou/DockerContainerData/emqx/log:/opt/emqx/log  # 挂载日志目录,日志输出到宿主机,方便排查问题

2、创建目录后,设置目录权限,

bash 复制代码
sudo chown -R 1000:1000 /Users/xiaozhou/DockerContainerData/emqx
sudo chmod -R 777 /Users/xiaozhou/DockerContainerData/emqx

3、 进入容器内部并编辑 loaded_plugins 文件

bash 复制代码
echo "emqx_dashboard." >> /opt/emqx/data/loaded_plugins
echo "emqx_management." >> /opt/emqx/data/loaded_plugins

4、在docker-compose.yml的目录通过下方指令删除、重启容器;

bash 复制代码
docker-compose down
docker-compose up -d

二、参考文档

EMQX的docker部署与使用(mqtt):https://blog.csdn.net/qq_19891197/article/details/132864991

编辑/etc/docker/daemon.json

bash 复制代码
{
  "registry-mirrors": [
    "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://your_preferred_mirror",
    "https://dockerhub.icu",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
  ]
}

重新加载配置文件

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置是否生效

bash 复制代码
docker info

三、可视化管理后台

访问地址:http://127.0.0.1:18083

  • 用户名:admin
  • 密码:public
相关推荐
bigbig_ben1 小时前
yearning安装docker
运维·docker·容器
日常筹谋记4 小时前
工业厂房 TPO 防水卷材:技术需求如何传导到配方层面?
运维·网络·html
Linux_cy4 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
发量惊人的中年网工6 小时前
抗DDoS服务哪家比较靠谱?选DDoS防护服务重点看哪几点?
运维·ddos
Meta Luo8 小时前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
爱和冰阔落8 小时前
【Linux】线程安全进阶:单例模式、可重入函数与死锁排查
linux·运维·安全·单例模式
dk_tjy8 小时前
迪康网络运维故障自愈的自动化闭环技术路径分析
运维·网络·自动化
吉普赛的歌8 小时前
如何设置服务器固定时间点自动重启一次
运维·服务器
帷幕落秋8 小时前
SSH远程管理服务
运维·ssh