HA上配置MQTT

一、新建docker装eclipse-mosquitto 镜像,启动mosquito服务

方案 1:直接拉取官方 eclipse-mosquitto 镜像(推荐,最简单)

放弃腾讯云镜像源,直接拉取官方镜像(群晖 NAS 会自动适配多架构,无需担心兼容性):
 
docker pull eclipse-mosquitto:latest
  • 若拉取慢但能成功:耐心等待(官方镜像体积仅~15MB,即使慢也很快完成);
  • 若提示 connection timeout:继续看方案 2(配置国内通用镜像源)。

方案 2:配置 Docker 国内镜像源(解决拉取慢 / 失败)

群晖 NAS 需手动配置 Docker 镜像源,优先选阿里云 / 网易云等通用源:
  1. 群晖 UI 操作(可视化,推荐):
    • 打开群晖 DSM → 套件中心 → Docker → 打开 Docker 应用;
    • 点击 Docker 左侧「设置」→「注册表」→「添加」;
    • 输入镜像源地址(二选一):
      • 阿里云(推荐):https://mirror.aliyun.com/docker-library/
      • 网易云:https://hub-mirror.c.163.com/
    • 勾选「启用」,点击「确定」,重启 Docker 套件;
    • 重新执行拉取命令:docker pull eclipse-mosquitto:latest
  2. 命令行配置(备用):
    bash
    # 创建 Docker 配置目录
    mkdir -p /var/lib/docker/config
    # 写入镜像源配置
    cat > /var/lib/docker/config/daemon.json << EOF
    {
      "registry-mirrors": [
        "https://mirror.aliyun.com/docker-library/",
        "https://hub-mirror.c.163.com/"
      ]
    }
    EOF
    # 重启 Docker 服务
    systemctl restart docker
    # 重新拉取镜像
    docker pull eclipse-mosquitto:latest

二、验证镜像拉取是否成功

执行以下命令,若输出镜像 ID 则说明拉取成功:
docker images | grep mosquitto

 

示例成功输出:
plaintext
eclipse-mosquitto   latest    xxxxxxxx    2 weeks ago    15MB

三、避坑说明( NAS 专属)

DNS 解析问题:

 默认 DNS 可能指向本地(127.0.0.1),导致部分镜像源域名解析失败,配置国内镜像源后可解决;

 

  1. Docker 权限:确保以 root 用户执行命令(你当前已是 root,无需额外操作);
  2. 架构适配:群晖 NAS 无论 x86_64 还是 ARM64 架构,eclipse-mosquitto 官方镜像都会自动适配,无需手动指定 --platform

四、拉取成功后,快速启动 Mosquitto 容器

镜像拉取完成后,执行以下命令启动(适配 HA Core 批量模拟设备):
# 创建配置目录(与 HA Core 配置同级,方便管理)
mkdir -p /volume1/docker/mosquitto/{config,data,log}

# 写入核心配置文件
cat > /volume1/docker/mosquitto/config/mosquitto.conf << EOF
allow_anonymous true
listener 1883 0.0.0.0
max_connections 2000
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_type all
EOF

# 启动容器(host 网络,HA 可直接访问)
docker run -d \
  --name mosquitto \
  --net=host \
  -v /volume1/docker/mosquitto/config:/mosquitto/config \
  -v /volume1/docker/mosquitto/data:/mosquitto/data \
  -v /volume1/docker/mosquitto/log:/mosquitto/log \
  --restart always \
  eclipse-mosquitto:latest

总结

  1. 核心解决:放弃腾讯云镜像源,要么直接拉官方镜像,要么配置阿里云 / 网易云镜像源;
  2. 验证关键:docker images | grep mosquitto 能看到镜像则说明拉取成功;
  3. 后续操作:启动容器后,即可在 HA Core 中配置 MQTT 集成,对接批量虚拟设备。
如果启动容器后提示「端口被占用」「权限不足」等问题,可告诉我具体报错,我会针对性调整启动命令。

 

 

二、

posted @ 2026-01-14 13:57  陈晓猛  阅读(18)  评论(0)    收藏  举报