为了账号安全,请及时绑定邮箱和手机立即绑定

同一网络上的容器彼此不通信

同一网络上的容器彼此不通信

Go
慕姐4208626 2022-12-26 16:40:01
我有一个名为 e-learning 的 mongodb 容器,我有一个应该连接到 mongodb 容器以更新我的数据库的 docker 图像,但它不起作用 我收到此错误:未知,最后一个错误:连接握手期间发生连接()错误:拨打 tcp 127.0.0.1:27017:连接:连接被拒绝}这是我的 docker 构建文件# syntax=docker/dockerfile:1 FROM golang:1.18 WORKDIR /go/src/github.com/worker COPY go.mod go.sum main.go  ./ RUN go mod download RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM jrottenberg/ffmpeg:4-alpine   FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ ENV LD_LIBRARY_PATH=/usr/local/lib COPY --from=jrottenberg/ffmpeg / / COPY app.env /root COPY --from=0 /go/src/github.com/worker/app . CMD ["./app"] 我的码头工人撰写文件version: "3.9"services:  worker:    image: worker    environment:     - MONGO_URI="mongodb://localhost:27017/"     - MONGO_DATABASE=e-learning      - RABBITMQ_URI=amqp://user:password@rabbitmq:5672/     - RABBITMQ_QUEUE=upload    networks:     - app_network    external_links:     - e-learning     - rabbitmq    volumes:      - worker:/go/src/github.com/worker:rwnetworks: app_network:  external: truevolumes:  worker:
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

我添加了额外的主机并将我的 mongo uri 更改为host.docker.internal 它解决了我的问题


version: "3.9"


services:

  worker:

    image: worker

    environment:

     - MONGO_URI="mongodb://host.docker.internal:27017/"

     - MONGO_DATABASE=e-learning 

     - RABBITMQ_URI=amqp://user:password@rabbitmq:5672/

     - RABBITMQ_QUEUE=upload

    networks:

     - app_network

    external_links:

     - e-learning

     - rabbitmq

    volumes:

      - worker:/go/src/github.com/worker:rw

    extra_hosts:

      - "host.docker.internal:host-gateway"


networks:

 app_network:

  external: true

volumes:

  worker:


查看完整回答
反对 回复 2022-12-26
?
大话西游666

TA贡献1817条经验 获得超14个赞

更改MONGO_URI="mongodb://localhost:27017/"MONGO_URI="mongodb://e-learning:27017/"(假设e-learning是 mongo 容器)。

在连接到桥接网络(默认)的容器中,localhost (127.0.0.1) 是容器本身。因此,您的应用程序容器正在尝试通过27017自身端口访问数据库(而不是在主机或数据库容器上)。最简单的解决方案是使用docker 提供的容器之间的自动 DNS 解析。


查看完整回答
反对 回复 2022-12-26
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信