使用Docker部署EMQX
说明:
- 本文档由DuRuofu撰写,由DuRuofu负责解释及执行。
修订历史:
文档名称 | 版本 | 作者 | 时间 | 备注 |
---|---|---|---|---|
使用Docker部署EMQX | v1.0.0 | DuRuofu | 2024-02-21 | 首次建立 |
- 创建挂载目录
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/*
- Docker 中下载 EMQX(免费下载、试用 EMQ 产品)
bash
docker pull emqx/emqx
- 启动临时容器
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做数据卷映射提示权限不够
- 拷贝配置文件 拷贝配置文件到宿主机,这样修改宿主机的配置文件之后只需要重启容器,配置文件就会生效。左边是容器的路径,右边是要映射宿主机路径。
docker cp emqx:/opt/emqx/etc /root/data/docker_data/emqx
docker cp emqx:/opt/emqx/data /root/data/docker_data/emqx
- 删除临时容器
docker rm -f emqx
- 重新启动 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
- 查看运行的镜像
text
docker ps
- 访问 Dashboard
bash
# 默认用户名及密码:admin/public
http://localhost:18083
- 端口介绍
- 1883:MQTT 协议端口
- 8084:MQTT/SSL 端口
- 8083:MQTT/WebSocket 端口
- 8080:HTTP API 端口
- 18083:Dashboard 管理控制台端口