web-dev-qa-db-ja.com

rabbitmqctlを使用してdockerコンテナのrabbitmqserverに接続するにはどうすればよいですか?

Dockerを使用してrabbitmqserverを起動しました。どうすればrabbitmqctlを使用してdockerコンテナのrabbitmqserverに接続できますか?

ポート5672が公開され、ホストの5672ポートにマップされています。しかし、それでも次のエラーが発生します。

Status of node rabbit@m2 ...
Error: unable to connect to node rabbit@m2: nodedown
12
waitingkuo

rabbitmqctlErlang Distributed Protocol (EDP)を使用してRabbitMQと通信します。ポート5672はAMQPプロトコルを提供します。 RabbitMQインスタンスが使用するEDPポートを調査できます。

$ 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  

これは、RabbitMQが次のことを意味します。

  • 接続 EPMD(Erlang Port Mapper Daemon) on 127.0.0.1:4369ノードが相互に認識できるようにする
  • ポート55950で着信EDP接続を待機します
  • ポート5672および55672でAMQP接続を待機します
  • 着信を待つ HTTP管理 ポート15672での接続

rabbitmqctlがRabbitMQに接続できるようにするには、ポート55950を転送し、RabbitMQインスタンスが127.0.0.1:4369に接続できるようにする必要もあります。 RabbitMQ EDPポートが動的である可能性があるため、静的にするには、 Erlang環境変数ERL_EPMD_PORT変数を使用するか、inet_dist_listen_minおよびinet_dist_listen_maxを使用してみてください。 of Erlangカーネル構成オプション そしてそれを RabbitMQ環境変数 --export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.confで適用します

my_rabbitmq.conf

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

または、 RabbitMQ Management Plugin を使用できます。より機能的でセットアップが簡単です。

7
sysoff

コンテナがrabbitmqと呼ばれ、実行されていると仮定します。

docker exec rabbitmq rabbitmqctl start_app
3
Jonathan
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

わたしにはできる!!

1
priyanshu singh

buntuおよびFedoraマシン上のクラスターでRabbitMQをセットアップしようとするとこのエラーが発生しました:

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

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

attempted to contact: ['[email protected]']

[email protected]:
  * 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==

クラスターのスレーブノードの1つである192.168.1.8マシンの4369および59984ポートを開くことで、このエラーを排除できました:

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
Eric Leschinski

ポート4369がファイアウォールで有効になっていませんでした。ファイアウォールを「オフ」に切り替えたとき。すべてが機能し始めました。

0
Chin2