14

我使用 docker 来启动我的 rabbitmqserver。如何使用 rabbitmqctl 连接到 docker 容器中的 rabbitmqserver?

端口 5672 已暴露并映射到我主机的 5672 端口。但我仍然收到以下错误:

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

5 回答 5

8

假设您的容器已被调用rabbitmq并正在运行:

docker exec rabbitmq rabbitmqctl start_app
于 2014-11-26T23:48:30.580 回答
7

rabbitmqctl使用Erlang 分布式协议(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:

为了rabbitmqctl能够连接到 RabbitMQ,您还必须转发端口 55950 并允许 RabbitMQ 实例连接到 127.0.0.1:4369。RabbitMQ EDP 端口可能是动态的,因此要使其成为静态,您可以尝试使用Erlang 环境变量ERL_EPMD_PORT的变量或使用Erlang 内核配置选项的变量并将其与RabbitMQ 环境变量一起应用-inet_dist_listen_mininet_dist_listen_maxexport RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf

my_rabbitmq.conf

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

或者您可以使用RabbitMQ 管理插件。它功能更强大,设置更简单。

于 2013-12-04T09:36:05.970 回答
0

我尝试在 ubuntu 和 fedora 机器上的集群上设置 RabbitMQ 时遇到此错误:

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==

我可以通过在集群的从属节点之一的 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
于 2014-09-02T03:49:38.110 回答
0

防火墙上未启用端口 4369。当我“关闭”防火墙时。一切都开始工作了。

于 2016-08-10T10:04:53.133 回答
0

只需键入docker exec -t rabbitmq sh Then 您将可以访问 docker 环境的终端。

进入后,输入rabbitmqctl以查看是否有效

希望它可以帮助你。

于 2020-04-22T06:21:05.293 回答