Skip to content

使用Docker部署EMQX

说明:

  1. 本文档由DuRuofu撰写,由DuRuofu负责解释及执行。

修订历史:

文档名称版本作者时间备注
使用Docker部署EMQXv1.0.0DuRuofu2024-02-21首次建立

参考 EMQ Documentation

  1. 创建挂载目录
bash
sudo mkdir -p /root/data/docker_data/emqx/data  /root/data/docker_data/emqx/etc  /root/data/docker_data/emqx/log

chmod 777 /root/data/docker_data/emqx/*
  1. Docker 中下载 EMQX(免费下载、试用 EMQ 产品
bash
docker pull emqx/emqx
  1. 启动临时容器
docker run --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 -d emqx

临时启动是为了生成配置文件,不然直接挂载目录会报错如下:

sh
ERROR: emqx.conf is not found in /opt/emqx/etc
ERROR: emqx.conf is not found in /opt/emqx/etc
ERROR: emqx.conf is not found in /opt/emqx/etc

后面的步骤无法正常使用,权限报错问题没解决:见: emqx做数据卷映射提示权限不够

  1. 拷贝配置文件 拷贝配置文件到宿主机,这样修改宿主机的配置文件之后只需要重启容器,配置文件就会生效。左边是容器的路径,右边是要映射宿主机路径。
docker cp emqx:/opt/emqx/etc /root/data/docker_data/emqx
docker cp emqx:/opt/emqx/data /root/data/docker_data/emqx
  1. 删除临时容器
docker rm -f emqx
  1. 重新启动 Docker 容器
bash
docker run --name emqx -p 1883:1883 -p 8083:8083 -p :8084 -p 8883:8883 -p 18083:18083 -v /root/data/docker_data/emqx/data:/opt/emqx/data -v /root/data/docker_data/emqx/etc:/opt/emqx/etc -v /root/data/docker_data/emqx/log:/opt/emqx/log -d emqx/emqx:latest
  1. 查看运行的镜像
text
docker ps
  1. 访问 Dashboard
bash
# 默认用户名及密码:admin/public
http://localhost:18083
  1. 端口介绍
  • 1883:MQTT 协议端口
  • 8084:MQTT/SSL 端口
  • 8083:MQTT/WebSocket 端口
  • 8080:HTTP API 端口
  • 18083:Dashboard 管理控制台端口

参考链接

  1. https://docker.easydoc.net/doc/81170005/cCewZWoN/AWOEX9XM
  2. https://www.emqx.io/docs/zh/v5/deploy/install-docker.html#通过-docker-运行单个-emqx-节点
  3. https://zhuanlan.zhihu.com/p/651592911