Docker Mosquitto 不会加载自定义配置文件

问题描述 投票:0回答:0

目标是在 docker 中运行一个 mosquitto 代理,它应该订阅同一网络中不同设备发布的主题。主机操作系统是 Centos(最小安装)。 不幸的是有两个问题

  1. Mosquitto 没有加载我在 docker-compose.yml 中提供的自定义 mosquitto.conf
  2. "Error: Address in use"
    – 即使主机或不同容器上没有运行其他 Mosquitto 服务。 (用
    netstat -tunlp
    docker ps -a
    检查)

我希望加载正确的配置后“正在使用的地址”错误将得到解决?如果有人能指出正确的方向,我将非常感激。我是不是忽略了什么?

1681677658: mosquitto version 2.0.15 starting
1681677658: Using default config.
1681677658: Starting in local only mode. Connections will only be possible from clients running on this machine.
1681677658: Create a configuration file which defines a listener to allow remote access.
1681677658: For more details see https://mosquitto.org/documentation/authentication-methods/
1681677658: Opening ipv4 listen socket on port 1883.
1681677658: Error: Address in use
1681677658: Opening ipv6 listen socket on port 1883.
1681677658: Error: Address not available

docker-compose.yml 和 mosquitto.conf:

---
version: '3.7'

services:
  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto
    restart: always
    volumes:
      - /opt/mosquitto/config:/mosquitto/config
      - /opt/mosquitto/mosquitto/data:/mosquitto/data
      - /opt/mosquitto/mosquitto/log:/mosquitto/log
    ports:
      - 1883:1883
      - 9001:9001
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883

## Authentication ##
allow_anonymous true

到目前为止我尝试了什么:

  • 设置用户/密码(

    mosquitto_passwd -c /mosquitto/config/password.txt mqttuser
    → 编辑 mosquitto.conf(allow_anonymous false & password_file /mosquitto/config/password.txt)→ 重新启动容器)

  • 将 mosquitto/config/mosquitto.conf 放在 docker-compose 目录中,而不是 /opt 并相应地更新 docker-compose.yml

  • 尝试了不同的文件夹路径,例如蚊子/conf/mosquitto.conf

  • docker-compose.yml 中的不同路径,例如蚊子/config/mosquitto.conf:/mosquitto/config/mosquitto.conf

  • 检查我的 libseccomp 是否过时(2.5.2-2.el9),因为有人有类似的问题link

  • 在每次新的尝试之后,我移除容器并从头开始新的。重启机器。

  • 编辑1:跑步

    $ sudo docker exec mosquitto ls -al /mosquitto/config

    total 4
    drwxr-xr-x    2 mosquitt mosquitt        28 Apr 16 19:47 .
    drwxr-xr-x    1 mosquitt mosquitt         6 Mar 29 19:43 ..
    -rw-r--r--    1 mosquitt mosquitt       155 Apr 16 19:47 mosquitto.conf
    
  • 编辑 2: 我用

    image: eclipse-mosquitto:2.0.14
    image: eclipse-mosquitto:2
    运行容器——仍然是同样的错误。

    $ docker image ls
    eclipse-mosquitto    2.0.14    e9f5cf5f8c52    8 months ago    11.8MB
    $ docker stop mosquitto && docker rm mosquitto && docker image rm e9f5cf5f8c52 && docker system prune
    $ docker compose up -d
    $ docker image ls
    eclipse-mosquitto    2.0.15    35a004f35c81    2 weeks ago     11.9MB
    
  • 编辑 3: 使用

    network_mode: host
    且没有端口映射运行 docker-compose.yml。网络正常,我可以 ping 通其他设备。但仍然是同样的错误:
    using default config
    Error: Address in use
    .

  • 编辑 4: 删除旧容器和图像后,我用

    $ docker compose up -d
    $ sudo docker exec -it mosquitto /bin/sh
    mosquitto -v
    运行它(但我也通过
    docker logs
    检查了日志)

    $ ps -ax | grep mosquitto
    315868 pts/0    S+     0:00 grep --color=auto mosquitto
    
    $ sudo docker ps
    CONTAINER ID   IMAGE                                        COMMAND                  CREATED      STATUS                PORTS                                                                                                                                                                                    NAMES
    9f7d6b130b64   syncthing/syncthing                          "/bin/entrypoint.sh …"   6 days ago   Up 2 days (healthy)   0.0.0.0:8384->8384/tcp, 0.0.0.0:21027->21027/udp, :::8384->8384/tcp, :::21027->21027/udp, 0.0.0.0:22000->22000/tcp, :::22000->22000/tcp, 0.0.0.0:22000->22000/udp, :::22000->22000/udp   syncthing
    0fc19381338b   ghcr.io/paperless-ngx/paperless-ngx:latest   "/sbin/docker-entryp…"   6 days ago   Up 2 days (healthy)   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp                                                                                                                                                paperless-webserver
    fe14e32c142b   postgres:13                                  "docker-entrypoint.s…"   6 days ago   Up 2 days             5432/tcp                                                                                                                                                                                 paperless-postgres
    b7fe9d55b5de   redis:7                                      "docker-entrypoint.s…"   6 days ago   Up 2 days             6379/tcp                                                                                                                                                                                 paperless-redis
    9ed6e4265a1e   pihole/pihole:latest                         "/s6-init"               9 days ago   Up 2 days (healthy)   0.0.0.0:53->53/udp, :::53->53/udp, 0.0.0.0:53->53/tcp, :::53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:67->67/udp, :::80->80/tcp, :::67->67/udp                                               pihole
    
docker docker-compose mqtt mosquitto
© www.soinside.com 2019 - 2024. All rights reserved.