Commande Démarrer le conteneur :
sudo docker run --name rabbit -d -p 5672:5672 -p 15672:15672 rabbitmq:management
code producteur :
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('rabbit'))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
message = 'hello!'
channel.basic_publish(exchange='',
routing_key='task_queue',
body=message,
)
print(" [x] Sent %r" % message)
connection.close()
Message d'erreur :
Traceback (most recent call last):
File "producer_queue.py", line 31, in <module>
main()
File "producer_queue.py", line 13, in main
connection = pika.BlockingConnection(pika.ConnectionParameters('rabbit'))
File "/usr/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 339, in __init__
self._process_io_for_connection_setup()
File "/usr/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup
self._open_error_result.is_ready)
File "/usr/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output
raise exceptions.ConnectionClosed()
pika.exceptions.ConnectionClosed
J'ai vu le code chez des collègues et en ligne, c'est le même que le mien, mais le service peut être utilisé directement en dehors du conteneur
Une autre façon de monter le code dans un conteneur Python peut également être utilisée normalement
sudo docker run -v $PWD:/code -w /code --link=rabbit:rabbit -it python:2 bash
Mais c'est trop gênant et déraisonnable
Je ne sais pas où est le problème, veuillez le résoudre
.
1. Si l'hôte est accédé, essayez d'utiliser 127.0.0.1 ou localhost. Vérifiez d'abord si Rabbitmq est démarré avec succès, puis vérifiez le service de port et vérifiez également le journal
.2. Je recommande d'utiliser le service d'orchestration docker-compose et recommande également d'utiliser python pour le monter dans un conteneur.