Docker emqx_ctl beheben: Node '[email protected]' not responding to pings.
English
Deutsch
Problem:
Beim Versuch, emqx_ctl in einem dockerisierten emqx-Setup mit einem Befehl wie
emqx_docker_status.sh
docker-compose exec emqx ./bin/emqx statusauszuführen, sehen Sie eine Fehlermeldung wie
emqx_node_not_responding.txt
Node '[email protected]' not responding to pings.
/opt/emqx/bin/emqx: line 41: die: command not foundLösung
Das Problem hier ist, dass emqx_ctl versucht, sich mit der IP-Adresse für node1.emqx.mydomain.com zu verbinden, aber diese IP-Adresse nicht auf die IP-Adresse des Docker-Containers zeigt (vielleicht ist es die öffentliche IP-Adresse Ihres Servers?)
Die Lösung besteht hier darin, einen Netzwerk-Alias innerhalb von docker/docker-compose zu erstellen, sodass das Docker-DNS-System node1.emqx.mydomain.com zur internen IP-Adresse des Containers auflöst.
Zum Beispiel können Sie in docker-compose Ihr Netzwerk erstellen mit
docker_networks_emqx.yml
networks:
emqx:
driver: bridgeund dann den Alias für den Container konfigurieren mit
docker_compose_emqx_service.yml
services:
emqx:
image: emqx:4.4.4
environment:
- "EMQX_NAME=emqx"
- "EMQX_HOST=node1.emqx.mydomain.com"
- "EMQX_LOADED_PLUGINS=emqx_recon,emqx_retainer,emqx_management,emqx_dashboard"
ports:
- 18083:18083
- 1883:1883
volumes:
- ./emqx_data:/opt/emqx/data
- ./emqx_log:/opt/emqx/log
networks:
emqx:
aliases:
- "node1.emqx.mydomain.com"If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow