Comment utiliser rabbitmqctl pour se connecter au serveur RabbitMQ dans le conteneur docker?

j'ai utilisé docker pour lancer mon rabbitmqserver. Comment puis-je utiliser rabbitmqctl pour me connecter au serveur rabbitmqserver dans le conteneur docker?

Port 5672 a été exposé et la carte au port 5672 de mon hôte. Mais j'ai toujours l'erreur suivante:

Status of node rabbit@m2 ...
Error: unable to connect to node rabbit@m2: nodedown
10
demandé sur Matteo 2013-12-03 11:55:19

5 réponses

rabbitmqctlErlang Protocole Distribué (EDP) pour communiquer avec RabbitMQ. Le Port 5672 fournit le protocole AMQP. Vous pouvez rechercher le port EDP que votre instance RabbitMQ utilise:

$ netstat -uptan | grep beam
tcp        0      0 0.0.0.0:55950           0.0.0.0:*               LISTEN      31446/beam.smp  
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      31446/beam.smp  
tcp        0      0 0.0.0.0:55672           0.0.0.0:*               LISTEN      31446/beam.smp  
tcp        0      0 127.0.0.1:55096         127.0.0.1:4369          ESTABLISHED 31446/beam.smp  
tcp6       0      0 :::5672                 :::*                    LISTEN      31446/beam.smp  

Cela signifie que RabbitMQ:

  • connecté EPMD (Erlang Port Mapper Daemon) sur 127.0.0.1:4369 à faire des nœuds en mesure de voir les uns les autres
  • en attente de l'arrivée EDP connexion sur le port 55950
  • attend L'AMQP connexion sur le port 5672 et 55672
  • en attente de l'arrivée gestion HTTP connexion sur le port 15672

faire rabbitmqctl capable de se connecter à RabbitMQ vous devez également avancer le port 55950 et permettre à RabbitMQ instance de se connecter à 127.0.0.1:4369. Il est possible que le port eDP de RabbitMQ soit dinamic, donc pour le rendre statique vous pouvez essayer d'utiliser ERL_EPMD_PORT variable de variables D'environnement Erlang ou utiliser inet_dist_listen_min et inet_dist_listen_max Erlang Noyau les options de configuration et l'appliquer avec RabbitMQ variable d'environnement -export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf

my_rabbitmq.conf

[{kernel,[{inet_dist_listen_min, 55950},{inet_dist_listen_min, 55950}]}].

Ou vous pouvez utiliser RabbitMQ Plug-In De Gestion. Il est plus fonctionnel et simple à installer.

6
répondu sysoff 2013-12-04 09:36:05

en supposant que votre conteneur s'appelle rabbitmq et est en cours d'exécution:

docker exec rabbitmq rabbitmqctl start_app
1
répondu Jonathan 2014-11-26 23:48:30
Create a rabbitmq environment variables config file at /etc/rabbitmq/rabbitmq-env.conf
Add NODENAME=rabbit@localhost to it (note that just localhost didn't work)
sudo service rabbitmq-server start

ça marche pour moi!!

1
répondu priyanshu singh 2016-06-09 07:58:04

j'ai eu cette erreur en essayant de configurer RabbitMQ sur un cluster sur une machine ubuntu et fedora:

el@apollo:/etc/rabbitmq$ sudo rabbitmqctl join_cluster rabbit@192.168.1.8
Clustering node rabbit@apollo with 'rabbit@192.168.1.8' ...
Error: unable to connect to nodes ['rabbit@192.168.1.8']: nodedown

DIAGNOSTICS
===========

attempted to contact: ['rabbit@192.168.1.8']

rabbit@192.168.1.8:
  * unable to connect to epmd (port 4369) on 192.168.1.8: address 
    (cannot connect to host/port)


current node details:
- node name: rabbitmqctl7233@apollo
- home dir: /var/lib/rabbitmq
- cookie hash: g0tS9zEdo7OEDSZaDTGirA==

j'ai pu éliminer cette erreur en ouvrant le port 4369 et 59984 sur la machine 192.168.1.8 qui est l'un des noeuds esclaves du cluster:

el@defiant ~ $ su -
Password:
[root@defiant ~]# iptables -I INPUT -p tcp --dport 4369 --syn -j ACCEPT
[root@defiant ~]# iptables -I INPUT -p tcp --dport 59984 --syn -j ACCEPT
0
répondu Eric Leschinski 2014-09-02 03:49:38

le Port 4369 n'était pas activé sur le pare-feu. Lorsque j'ai changé le pare-feu 'off'. Tout a commencé à fonctionner.

0
répondu Chin2 2016-08-10 10:04:53