我有一个运行着Java进程的Docker容器,我试图连接到运行在本地主机上的RabbitMQ。以下是我迄今为止所做的步骤:
在我的本地计算机(MacBook运行Docker版本1.13.0-rc3,构建4d92237,防火墙关闭),我已更新了rabbitmq_env.conf文件以删除RABBITMQ_NODE_IP_ADDRESS,因此我不必通过本地主机进行连接,并且我有一个管理员rabbitmq用户(不使用guest用户)。我已通过本地计算机上的telnet测试,没有问题 telnet <本地ip> 5672 在我的Docker容器内部:
能够ping本地IP并访问RabbitMQ管理API curl -i -u username:password http://local-ip:15672/api/vhosts 成功返回 [{"name":"/","tracing":false}] 当我尝试从容器内部进行telnet时,我收到“Connection closed by foreign host”错误消息。 查看rabbitmq.logs
= ERROR REPORT ==== closing AMQP connection <0.30526.1> (local-ip:53349 -> local-ip:5672): {handshake_timeout,handshake} 如果有用,这是我的Java堆栈跟踪:Caused by: java.net.ConnectException: Connection refused (Connection >refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at >java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at >java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.>java:206) at >java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589)在com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)处发生错误, 在com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:35)时创建新连接。 可以使用docker network inspect bridge命令检查网络配置信息。
在我的本地计算机(MacBook运行Docker版本1.13.0-rc3,构建4d92237,防火墙关闭),我已更新了rabbitmq_env.conf文件以删除RABBITMQ_NODE_IP_ADDRESS,因此我不必通过本地主机进行连接,并且我有一个管理员rabbitmq用户(不使用guest用户)。我已通过本地计算机上的telnet测试,没有问题 telnet <本地ip> 5672 在我的Docker容器内部:
能够ping本地IP并访问RabbitMQ管理API curl -i -u username:password http://local-ip:15672/api/vhosts 成功返回 [{"name":"/","tracing":false}] 当我尝试从容器内部进行telnet时,我收到“Connection closed by foreign host”错误消息。 查看rabbitmq.logs
= ERROR REPORT ==== closing AMQP connection <0.30526.1> (local-ip:53349 -> local-ip:5672): {handshake_timeout,handshake} 如果有用,这是我的Java堆栈跟踪:Caused by: java.net.ConnectException: Connection refused (Connection >refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at >java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at >java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.>java:206) at >java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589)在com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)处发生错误, 在com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:35)时创建新连接。 可以使用docker network inspect bridge命令检查网络配置信息。
我错过了什么?
docker ps
命令的输出,以及docker inspect
命令的输出吗? - The_Tourist