Problema:
Al intentar ejecutar emqx_ctl en una configuración dockerizada de emqx usando un comando como
emqx_docker_status.sh
docker-compose exec emqx ./bin/emqx statusves un mensaje de error como
emqx_node_not_responding.txt
Node 'emqx@node1.emqx.mydomain.com' not responding to pings.
/opt/emqx/bin/emqx: line 41: die: command not foundSolución
El problema aquí es que emqx_ctl está intentando conectar a la dirección IP para node1.emqx.mydomain.com pero esa dirección IP no apunta a la dirección IP del contenedor docker (¿quizás es la dirección IP pública de tu servidor?)
La solución aquí es crear un alias de red dentro de docker/docker-compose para que el sistema DNS de Docker resuelva node1.emqx.mydomain.com a la dirección IP interna del contenedor.
Por ejemplo, en docker-compose, puedes crear tu red usando
docker_networks_emqx.yml
networks:
emqx:
driver: bridgey luego configurar el alias para el contenedor usando
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"
Echa un vistazo a artículos similares por categoría:
Contenedores Docker EMQX MQTT
Si este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow