Container-Befehl starten:
sudo docker run --name rabbit -d -p 5672:5672 -p 15672:15672 rabbitmq:management
Herstellercode:
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()
Fehlermeldung:
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
Ich habe den Code von Kollegen gesehen und online ist derselbe wie meiner, aber der Service kann direkt außerhalb des Containers genutzt werden
Eine andere Möglichkeit, den Code in einen Python-Container einzubinden, kann auch normal verwendet werden
sudo docker run -v $PWD:/code -w /code --link=rabbit:rabbit -it python:2 bash
Aber das ist zu mühsam und unvernünftig
Ich weiß nicht, wo das Problem liegt. Bitte lösen Sie es
1.如果宿主机访问的话,你使用127.0.0.1 或者localhost试一试,先检查rabbitmq是否启动成功,然后检查端口服务,也检查一下日志
2.我推荐使用docker-compose编排服务,也推荐使用python挂载到容器中使用。