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
三、可视化管理后台
- 用户名:
admin - 密码:
public
