Rabbitmq - Docker 端口 5672 上的连接被拒绝
Rabbitmq - Docker connection refused on port 5672
我有一个用 Go 编写的 Web 服务器,它与 Rabbitmq 和 Mongodb 交互。当我 运行 我机器上的所有这些服务器都没有容器时 (rabbitmq url: amqp://guest:guest@localhost:5672
) 它工作正常。
现在我正尝试 运行 将所有这些服务放在一个单独的容器中。这是我的撰写文件
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
这是我的服务器docker文件
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。这是我在 运行ning docker compose up
和我的配置中的 rabbitmq url 为 amqp://guest:guest@rabbitmq:5672
时收到的日志消息(因为容器名称是 rabbitmq 我将 localhost 替换为 rabbitmq 以便我的服务器能够找到 rabbitmq 容器)
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 日志的最后两行
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 网络新手,我不知道我做错了什么?是我正在使用的 rabbitmq 地址还是我需要一些关于 rabbitmq 的额外配置或公开一些端口?
定位服务时,不要附加端口。使用 rabbitmq
,而不是 rabbitmq:5672
。
我已经在这里回答了你的问题:How to connect to rabbitmq container from the application server container
所有 docker 网络配置(在上述修复之后)似乎没问题。剩余的错误可能是由于与您的源代码相关的身份验证问题 and/or 身份验证 data/setup.
有两件事帮我解决了这个问题:
- 确保不要使用本地主机,而是使用容器的名称。对我来说是
amqp
.
amqp:
image: rabbitmq:3-management-alpine
ports:
- "5672:5672"
- "15672:15672"
那么连接字符串将是amqp://guest:guest@amqp/
。
我有一个用 Go 编写的 Web 服务器,它与 Rabbitmq 和 Mongodb 交互。当我 运行 我机器上的所有这些服务器都没有容器时 (rabbitmq url: amqp://guest:guest@localhost:5672
) 它工作正常。
现在我正尝试 运行 将所有这些服务放在一个单独的容器中。这是我的撰写文件
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
这是我的服务器docker文件
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。这是我在 运行ning docker compose up
和我的配置中的 rabbitmq url 为 amqp://guest:guest@rabbitmq:5672
时收到的日志消息(因为容器名称是 rabbitmq 我将 localhost 替换为 rabbitmq 以便我的服务器能够找到 rabbitmq 容器)
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 | 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 网络新手,我不知道我做错了什么?是我正在使用的 rabbitmq 地址还是我需要一些关于 rabbitmq 的额外配置或公开一些端口?
定位服务时,不要附加端口。使用 rabbitmq
,而不是 rabbitmq:5672
。
我已经在这里回答了你的问题:How to connect to rabbitmq container from the application server container
所有 docker 网络配置(在上述修复之后)似乎没问题。剩余的错误可能是由于与您的源代码相关的身份验证问题 and/or 身份验证 data/setup.
有两件事帮我解决了这个问题:
- 确保不要使用本地主机,而是使用容器的名称。对我来说是
amqp
.
amqp:
image: rabbitmq:3-management-alpine
ports:
- "5672:5672"
- "15672:15672"
那么连接字符串将是amqp://guest:guest@amqp/
。