recherche

Maison  >  Questions et réponses  >  le corps du texte

L'image RabbitMQ démarrée avec Docker ne peut pas être exposée (fournissant des services au monde extérieur)

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

.
世界只因有你世界只因有你2772 Il y a quelques jours1526

répondre à tous(1)je répondrai

  • 世界只因有你

    世界只因有你2017-05-27 17:46:12

    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.

    répondre
    0
  • Annulerrépondre