Home assistant: mosquitto mqtt服务器搭建 基于centOS7 docker

拉取mosquitto镜像

docker pull eclipse-mosquitto:latest

在本地创建目录

mkdir /home/mosquitto
cd /home/mosquitto
mkdir config
mkdir data
mkdir log

创建配置文件

vi /config/mosquitto.conf
#配置文件中添加下述内容

persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log

log_dest stdout

listener 1883 

修改目录权限

chmod -R 755 /home/mosquitto && chmod -R 777 /home/mosquitto/log

创建并运行容器

docker run -it --name=mosquitto --privileged --restart=unless-stopped \
-p 1883:1883 -p 9001:9001 \
-v /home/dxy/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /home/dxy/mosquitto/data:/mosquitto/data \
-v /home/dxy/mosquitto/log:/mosquitto/log \
-d eclipse-mosquitto

#参数解释
-d:在后台运行容器
–name:容器名
-v:将容器内的目录映射到容器外
-p:端口映射

若在创建容器后想修改docker容器的权限,可执行以下命令

docker container update 参数名称 容器名字
#例
docker container update --restart=always mosquitto

开始设置密码

vi /home/mosquitto/config/mosquitto.conf
#在配置文件中添加下述内容

# 关闭匿名模式
allow_anonymous false
# 指定密码文件
password_file /mosquitto/config/pwfile.conf

进入mosquitto容器

docker exec -it mosquitto sh

创建并修改密码文件权限

touch /mosquitto/config/pwfile.conf && chmod -R 755 /mosquitto/config/pwfile.conf

使用mosquitto_passwd命令创建用户

mosquitto_passwd -b /mosquitto/config/pwfile.conf 用户名 密码

重启容器

docker restart mosquitto

在home assistant页面>配置>集成中添加MQTT

你可能感兴趣的:(物联网,linux,服务器,docker,运维,物联网)