Я изучаю основы RabbitMQ, установил его на контейнер. При осмотре контейнера все в порядке.

PS C:\Users\jvidin> docker port rabbitmq
25672/tcp -> 0.0.0.0:32776
4369/tcp -> 0.0.0.0:32779
5671/tcp -> 0.0.0.0:32778
5672/tcp -> 0.0.0.0:32777
PS C:\Users\jvidin> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                 NAMES
d2fe1297c403        rabbitmq:latest     "docker-entrypoint..."   22 minutes ago      Up 22 minutes       0.0.0.0:32779->4369/tcp, 0.0.0.0:32778->5671/tcp, 0.0.0.0:32777->5672/tcp, 0.0.0.0:32776->25672/tcp   rabbitmq
55253e21bb49        b38ce49eadce        "docker-entrypoint..."   8 weeks ago         Up 3 hours          0.0.0.0:5433->5432/tcp                                                                                mypostgres9.6

Но чем при попытке подключиться через Pika Python lib, как показано ниже, он не работает с сообщением ниже

pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5672 failed: timeout

Код

import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()

РАЗРЕШЕНИЕ НИЖЕ ПРАВИЛЬНАЯ ИНФОРМАЦИЯ О СОЕДИНЕНИИ

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost', port=32777))
3
Jorge Vidinha 3 Янв 2018 в 01:25

1 ответ

Лучший ответ

Вам необходимо настроить ваш клиент Python для использования localhost:32777.

Просто проверьте вывод docker port rabbitmq. Он показывает, что порт контейнера 5672 сопоставлен с портом 32777 на вашем хосте докеров.

2
Sebastian 2 Янв 2018 в 22:30