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
相关推荐
石小千1 小时前
X86下载 ARM 架构的包
linux·运维
殷忆枫1 小时前
嵌入式Linux下基于FFmpeg实现MP4解码为JPG图片(SSD202D交叉编译实战)
linux·运维·ffmpeg
牢姐与蒯1 小时前
Linux进程(二)之进程概念
linux·运维·服务器·ubuntu
HiDev_1 小时前
【非标自动化】2、认识元器件(模拟量模块)
运维·自动化
终末圆1 小时前
GitHub Actions 实现 CI/CD
运维·ci/cd·github·运维开发·devops
jieshenai2 小时前
Shell 脚本如何定位项目根目录——从一个 8 行的小脚本讲起
linux·运维
Linux运维技术栈2 小时前
云平台服务器遭遇黑客攻击?用 Nginx 批量封锁敏感接口,自动返回 444 关闭连接
运维·服务器·nginx·安全·防御
qetfw2 小时前
Debian OpenLDAP 目录服务配置:DN、LDIF、ldapsearch 与认证验证
linux·运维·debian
wzq11_6662 小时前
云计算运维学习day22——Ansible-Roles
运维·学习·云计算