mqtt_docker安装
拉取:
docker pull registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6
- 验证
docker images
运行
-
创建 sh 文件
vim start_mqtt.sh
-
写入文件内容
sh#!/bin/bash #删除原有的容器 contain_name="mqtt" #指定启动容器名称 img_name="registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6" #指定使用镜像 server_port=1883 #1883MQTT TCP非加密 MQTT 客户端连接,最常用端口 server_port1=8883 #8883MQTT over SSL/TLS加密 MQTT 连接,需配置证书 server_port2=8083 #8083WebSocket/HTTP API浏览器客户端连接、HTTP 接口调用 server_port3=8084 #8084WSS/HTTPS加密 WebSocket/HTTPS 连接 server_port4=18083 #18083Dashboard 管理Web 管理界面,默认账号admin/public network_name="useNet" #如果没有则不需要配置 --net "$network_name" --restart=always file_path="" # 建议改为环境变量或安全存储 docker rm -f ${contain_name} # 创建挂载目录(避免权限问题) #mkdir -p ${file_path} && chmod 777 ${file_path} docker run -d \ --name ${contain_name} \ -p ${server_port}:1883 \ -p ${server_port1}:8883 \ -p ${server_port2}:8083 \ -p ${server_port3}:8084 \ -p ${server_port4}:18083 \ ${img_name} #自动重启 #docker run -d --restart=always \ #--name ${contain_name} \ #-p ${server_port}:1883 \ #-p ${server_port1}:8883 \ #-p ${server_port2}:8083 \ #-p ${server_port3}:8084 \ #-p ${server_port4}:18083 \ #${img_name} # 配置防火墙 firewall-cmd --zone=public --add-port=${server_port}/tcp --permanent >/dev/null 2>&1 firewall-cmd --zone=public --add-port=${server_port4}/tcp --permanent >/dev/null 2>&1 firewall-cmd --reload >/dev/null 2>&1 IPS=$(ip addr | grep '192.168' | awk '{print $2}' | cut -d/ -f1 | tr '\n' ' ') echo "? ${contain_name} 已启动 | Server IPs: $IPS | 端口:${server_port} | 密码:${password}" -
验证
docker ps -a
root@localhost \~\]# docker ps -a \|grep mqtt 876a28eff895 registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6 "/opt/emqttd/start.sh" 4 days ago Up 7 hours 4369/tcp, 6000-6999/tcp, 0.0.0.0:1883-\>1883/tcp, :::1883-\>1883/tcp, 0.0.0.0:8083-8084-\>8083-8084/tcp, :::8083-8084-\>8083-8084/tcp, 0.0.0.0:8883-\>8883/tcp, :::8883-\>8883/tcp, 0.0.0.0:18083-\>18083/tcp, :::18083-\>18083/tcp, 8080/tcp emqttd
docker logs -f 容器id
root@localhost \~\]# docker logs -f 876a28eff895 ### web界面 机器IP:18083 就可以进入emqtt页面 初始的账户 admin, 密码 public