我在做一个简单的设置,让Raspberry PI通过RabbitMQ与服务器通信,而不是建立连接。设置如下:
Mac上的Docker执行:
docker run -v /Users/tigelane/Documents/Development/brimstone_manager:/var/lib/rabbitmq -d --hostname my-rabbit --name some-rabbit rabbitmq:3
要在客户端上执行的Python代码:
^{pr2}$我一直看到这个错误:
Traceback (most recent call last): File "./brimstone_post.py", line 75, in main() File "./brimstone_post.py", line 71, in main rabbit_post() File "./brimstone_post.py", line 58, in rabbit_post connection = pika.BlockingConnection(connectionParams) File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 339, in init self._process_io_for_connection_setup() File "/usr/local/lib/python2.7/dist-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/dist-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output raise exceptions.ConnectionClosed() pika.exceptions.ConnectionClosed
我读了一些其他帖子,并尝试了以下方法来解决问题:
docker logs some-rabbit
日志文件
没有任何联系。在sudo tcpdump
port 5672
我终于意识到在Docker容器上没有-p
选项来将端口转发到容器。我在命令行上将容器更改为打开端口5672,现在它开始工作了。希望这可以帮助其他可能正在使用hub.docker.com网站在RabbitMQ上。在
这是他们为docker容器提供的示例:$ docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
这是我用来启动RabbitMQ docker容器的新命令,它运行得很好:docker run -v /Users/tigelane/Documents/Development/brimstone_manager:/var/lib/rabbitmq -d --hostname my-rabbit --name some-rabbit -p 5672:5672 rabbitmq:3
虽然我认为我已经解决了我的问题,但我有一种唠叨的感觉,我遗漏了一些东西(除了我可能需要添加的其他端口之外),并且可能是因为示例中省略了端口,或者他们忽略了它,以为每个人都会自然地添加端口,因为这就是您使用Docker容器的方式。不管怎样,请随时纠正我的错误。在
目前没有回答
相关问题 更多 >
编程相关推荐