首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rabbitmq - Docker连接在端口5672上被拒绝

Rabbitmq - Docker连接在端口5672上被拒绝
EN

Stack Overflow用户
提问于 2019-03-10 16:59:38
回答 2查看 10.1K关注 0票数 4

我有一个用Go编写的web服务器,可以与Rabbitmq和Mongodb交互。当我在没有容器(rabbitmq:amqp://guest:guest@localhost:5672)的机器上运行所有这些服务器时,它工作得很好。

现在,我正尝试在一个单独的容器中运行所有这些服务。这是我的撰写文件

代码语言:javascript
复制
version: '3'
services:
  rabbitmq:
    image: rabbitmq
    container_name: rabbitmq
    ports:
      - 5672:5672
  mongodb:
    image: mongo
    container_name: mongodb
    ports:
      - 27017:27017
  web:
    build: .
    image: palash2504/collect
    container_name: collect-server
    restart: on-failure
    ports:
      - 3000:3000
    depends_on:
      - rabbitmq
      - mongodb
    links: ["rabbitmq", "mongodb"]

networks:
  default:
    external:
      name: collect-net

这是我的服务器dockerfile

代码语言:javascript
复制
FROM golang

ENV GO111MODULE=on


WORKDIR /app

COPY go.mod .
COPY go.sum .

RUN go mod download

COPY . .

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

EXPOSE 3000


ENTRYPOINT ["/app/social-cops-assignment"]

我的服务器似乎无法连接到rabbitmq。这是我在运行docker compose up时得到的日志消息,配置中的rabbitmq url是amqp://guest:guest@rabbitmq:5672 (因为容器名称是rabbitmq,所以我将localhost替换为rabbitmq,以便我的服务器能够找到rabbitmq容器)

代码语言:javascript
复制
collect-server | 2019/03/10 08:50:51 Failed to connect to AMQP compatible broker at: amqp://guest:guest@rabbitmq:5672/, with errror: dial tcp 172.24.0.3:5672: connect: connection refused

但rabbitmq似乎已经准备好接受连接。这是来自docker-compose up的rabbitmq日志的最后两行

代码语言:javascript
复制
rabbitmq    | 2019-03-10 08:50:55.164 [info] <0.489.0> accepting AMQP connection <0.489.0> (172.24.0.4:49784 -> 172.24.0.3:5672)
rabbitmq    | 2019-03-10 08:50:55.205 [info] <0.489.0> connection <0.489.0> (172.24.0.4:49784 -> 172.24.0.3:5672): user 'guest' authenticated and granted access to vhost '/'

我是docker-networking的新手,我不知道我做错了什么?是我正在使用的rabbitmq地址,还是我需要一些关于rabbitmq的额外配置,或者暴露一些端口?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-10 18:36:04

当以服务为目标时,不要附加端口。使用rabbitmq,而不是rabbitmq:5672

我已经在这里回答了你的问题:How to connect to rabbitmq container from the application server container

所有docker网络配置(在上面描述的修复之后)似乎都很好。剩下的错误可能是由于与源代码和/或身份验证数据/设置相关的身份验证问题造成的。

票数 4
EN

Stack Overflow用户

发布于 2021-09-22 00:45:11

有两件事帮我解决了这个问题:

  1. 请确保不使用本地主机,而使用容器的名称。对我来说,它是amqp.

代码语言:javascript
复制
amqp:
    image: rabbitmq:3-management-alpine
    ports:
      - "5672:5672"
      - "15672:15672"

则连接字符串将为amqp://guest:guest@amqp/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55086050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档