node.js - 无法使用 Node.js 连接到我的 Docker RabbitMQ

标签 node.js docker rabbitmq

我已经安装了 RabbitMQ docker 镜像并启动并运行它。 我的 docker 管理控制台也在 8080 端口上运行。

我使用 docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3

运行 docker

我正在尝试运行以下 Node 代码;

var amqp = require('amqplib/callback_api');

var connection = amqp.connect('amqp://localhost:5672',function(err,conn){
    console.log(conn); });

但是,conn 总是未定义的。

我试过了;

amqp://localhost:5672
amqp://localhost:15672
amqp://localhost
amqp://localhost:8080

但它们都不起作用。

我的 rabbitmq 经理说 amqp 正在监听 5672。

除了默认的 guest 帐户,我没有任何其他帐户。

我没有在管理员模式下运行 visual studio 代码。

我得到的错误是;

Error: Socket closed abruptly during opening handshake at Socket.endWhileOpening (C:\Users\sgrieger\Documents\Development\rabbitmq\node_modules\amqplib\lib\connection.js:259:17) at emitNone (events.js:111:20) at Socket.emit (events.js:208:7) at endReadableNT (_stream_readable.js:1064:12) at _combinedTickCallback (internal/process/next_tick.js:138:11) at process._tickCallback (internal/process/next_tick.js:180:9)

最佳答案

当您运行 docker 镜像时,您并没有暴露主机上的端口。您可以使用 -p 开关来做到这一点:

 docker run -d --hostname my-rabbit -p 5672:5672 --name some-rabbit rabbitmq:3 

关于node.js - 无法使用 Node.js 连接到我的 Docker RabbitMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996062/

相关文章:

node.js - PhantomJS 无法正确提供 JS 和 CSS 文件

java.lang.IllegalArgumentException : invalid value in table when trying to create an new connection 异常

c# - 如何让 IModel.BasicAcks 启动?

django - Django无法连接到gitlab ci中的postgres数据库

c# - 批量消费消息——RabbitMQ

javascript - 使用功能文件更新 JSON 元素

node.js - 使用 Express.js,如何根据任何请求发送文件?

node.js - microsoft-identity-express - 为什么我无法成功登录?

google-app-engine - 如何从当前系统创建 docker 镜像?

docker - Jenkins 使用 `.inside()`做什么来运行docker?