EMQX——docker安装及简单使用
因为课设要用到MQTT服务器,索性自己搭一个吧,都说EMQX挺好用的。
后期会介绍课程设计中如何使用EMQX的。
EMQX是什么
先介绍一下EMQX是什么,可以简单理解为一个MQTT的服务器。
更重要的是看EMQ白皮书的内容摘要:
文章目录
首先列出参考资料
读者可以阅读完博客内容后按顺序参考以上链接的内容。
一、安装EMQX
1.安装docker
首先安装以下顺序依次运行指令(如果更新过慢请先换源)
sudo apt update
sudo apt upgrade
sudo apt install docker.io -y
安装完成后输入
docker -v
#查看docker的版本,出现如下类似字样则表示安装成功
2.安装EMQX4.4.4
先进入root用户,输入密码
su
使用docker pull指令安装emqx镜像
docker pull emqx/emqx:4.4.4
安装成功后,输入指令
docker images
出现红框字样,则表示镜像安装成功
二、启动EMQX
1.简单docker操作启动EMQX
启动 docker 容器,最后一个参数为IMAGE ID
docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 68440db9c488
然后查看正在运行的容器,输入
docker ps -a
出现如下字样表示启动成功
2.配置、启动docker-compose集群
安装官方的下一步,我们需要配置简单的 static 集群,如果需要更详细的步骤介绍可以参照这个两个博客 docker-compose教程(安装,使用, 快速入门) || docker compose的学习 我在此不过多赘述
重点就是创建好docker-compose.yaml
之后修改为以下内容
mqx@node1.emqx.io, emqx@node2.emqx.io"
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
networks:
emqx-bridge:
aliases:
- node1.emqx.io
emqx2:
image: emqx/emqx:v4.0.0
environment:
- "EMQX_NAME=emqx"
- "EMQX_HOST=node2.emqx.io"
- "EMQX_CLUSTER__DISCOVERY=static"
- "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
networks:
emqx-bridge:
aliases:
- node2.emqx.io
networks:
emqx-bridge:
driver: bridge
然后输入启动 docker-compose 集群
docker-compose -p my_emqx up -d
输入指令查看集群
docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status"
显示如下字样表示启动成功
接着输入指令查看正在运行的容器
docker ps -a
出现以下字样表示已经全部运行成功
三、登录EMQX web管理页面
ip处填写本机IP地址,可以ipconfig
一下查看ip
在浏览器中输入以下链接
http://ip:18083 默认账号:admin 密码:public
出现如下界面就代表大功告成了!!
总结
本篇博客只是介绍以下如何docker启动EMQX。
笔者在其中跌跌撞撞历经坎坷,所以整理了以下学习过程分享给大家。
其中官方的安装和使用教程太过精炼,所以对于基础稍差的朋友们需要多参考网上的资料,特别关于如何理解集群概念需要好好花些功夫。
在docker-compose教程(安装,使用, 快速入门)这篇博客中提到:
Docker Compose是一个用来定义和运行复杂应用的Docker工具。
一个使用Docker容器的应用,通常由多个容器组成。
使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose教程(安装,使用, 快速入门)脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
所以看起来docker-compose是一个脚本,文件用来启动和管理容器,类似.sh文件,又有点makefile的感觉,嗯,这就是个人的一些理解了。
笔者刚入门,有什么理解不对的地方希望大家可以指正,欢迎在评论区一起讨论!